मेरे पास निम्न सरणी है।
var arr = [1,0,2];
मैं अंतिम तत्व यानी 2 को हटाना चाहूंगा।
मैंने इस्तेमाल किया arr.slice(-1);
लेकिन यह मूल्य नहीं हटाता है।
arr.slice(0,-1)
मेरे लिए सबसे अच्छा समाधान था
splice()
दूसरा मामला pop()
:।
मेरे पास निम्न सरणी है।
var arr = [1,0,2];
मैं अंतिम तत्व यानी 2 को हटाना चाहूंगा।
मैंने इस्तेमाल किया arr.slice(-1);
लेकिन यह मूल्य नहीं हटाता है।
arr.slice(0,-1)
मेरे लिए सबसे अच्छा समाधान था
splice()
दूसरा मामला pop()
:।
जवाबों:
ब्याह का उपयोग करें (सूचकांक, howmany)
arr.splice(-1,1)
[1].splice(-1, 1)
=>[1]
[0,1,2] -> [2]
पीछे छोड़ते हुए [0,1]
। अगर ऐसा है, तो [arr.pop()]
चाल चलिएगा।
array.pop()
संशोधित होगा array
, जबकि slice(0, -1)
नहीं होगा। पॉप बेशक तेज है, लेकिन सभी जरूरतों के लिए हमेशा उपयुक्त नहीं हो सकता है।
जावास्क्रिप्ट सम्मेलन द्वारा Array.prototyp.pop () ।
let fruit = ['apple', 'orange', 'banana', 'tomato'];
let popped = fruit.pop();
console.log(popped); // "tomato"
console.log(fruit); // ["apple", "orange", "banana"]
आप इस .slice()
पद्धति का उपयोग करके ऐसा कर सकते हैं :
arr.slice(0, -1); // returns [1,0]
यहाँ एक डेमो है:
var arr = [1, 0, 2];
var newArr = arr.slice(0, -1); // returns [1,0]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(0, -1): </b>
<div id="div2"></div>
करने के बजाय:
arr.slice(-1); // returns [2]
यहाँ एक डेमो है:
var arr = [1, 0, 2];
var newArr = arr.slice(-1); // returns [2]
console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array : </b>
<div id="div1"></div>
<br/>
<b>After slice(-1): </b>
<div id="div2"></div>
अब Array.prototype.slice()
या लघु slice()
विधि में मूल सिंटैक्स है:
arr.slice([begin[, end]])
यहाँ,
begin
पैरामीटर जो एक सरणी शुरू होता है से निकासी पर शून्य आधारित सूचकांक है। तो, अगर हम कुछ ऐसा करते हैं तो उपरोक्त उदाहरण के आधार पर कहते हैं
arr.slice(0) // returns [1,0,2]
यह स्थिति 0 से अनुक्रम की शुरुआत से सभी सरणी तत्वों को लौटाएगा और वह है [1,0,2]
। इसी तरह, अगर हम करते हैं
arr.slice(1) // returns [0,2]
यह [0,2]
0 के बाद से यहाँ स्थिति 1 पर है और उसके बाद सब कुछ होगा। अब, आपके मामले में आपने एक नकारात्मक सूचकांक पास किया है, -1
जैसे कि शुरुआती पैरामीटर, जो अनुक्रम के अंत से एक ऑफसेट इंगित करता है। तो, slice(-1)
आपके मामले में अनुक्रम में अंतिम एक सरणी तत्व निकालता है और वह है 2
( जैसा कि हमने पहले ही उपरोक्त डेमो में देखा है )।
अब, यहां विधि सिंटैक्स end
में पैरामीटर के बारे में बात करते slice()
हैं। यह फिर से एक शून्य-आधारित सूचकांक है जिस पर एक सरणी से निष्कर्षण समाप्त होता है। तो, हम कहते हैं कि हमारे पास एक सरणी है: -
var arr = [1, 0, 2, 5, 3, 9];
और हम 2,5,3
सरणी में बस तत्वों को प्राप्त करना चाहते हैं । अब, 2
अनुक्रम की शुरुआत से स्थिति है 2
और अंतिम तत्व के लिए 3
यह है 4
। हमें यहां 5 से निकासी निकालने की आवश्यकता होगी, क्योंकि हमें उस स्थिति से पहले तत्व प्राप्त करने की आवश्यकता है। इसलिए, हम बस slice()
यहाँ की तरह विधि लागू करेंगे
arr.slice(2, 5) // returns [2,5,3]
आपके मामले में, हमने -1
अंतिम पैरामीटर के रूप में लागू किया है, इसलिए हमारा कोड पसंद है
arr.slice(0, -1) // returns [1,0]
एक नकारात्मक सूचकांक के रूप end
में, अनुक्रम के अंत से एक ऑफसेट इंगित करता है। तो, slice(0,-1)
अनुक्रम में दूसरे-से-अंतिम तत्व के माध्यम से पहला तत्व निकालता है। तो, हम वांछित आउटपुट प्राप्त करते हैं। हम भी कर सकते हैं पसंद
arr.slice(0, 2) // returns [1,0]
हमें वही आउटपुट मिलेगा। लेकिन, मैंने -1
यहां लंबे अरसे के लिए भी इसे लागू करना आसान बना दिया है
[0,2,3,1,2,9,3,6,3,9,1,0,2,9,0,1,1,2,3,4,7,9,1]
यदि आप अंतिम तत्व को निकालना चाहते हैं, तो आप यहाँ पिछले 9 की स्थिति को बैठना और गणना नहीं करना चाहते हैं arr.slice(0, 22)
। फिर आप केवल यहाँ नकारात्मक सूचकांक तर्क को लागू कर सकते हैं
arr.slice(0, -1) // same result as arr.slice(0, 22)
आशा है ये मदद करेगा!
arr
बल्कि एक नया सरणी देता है जो उस अंतिम आइटम को बाहर करता है। जैसा कि मोज़िला के डॉक्स कहते हैं: "टुकड़ा () विधि एक सरणी के एक हिस्से की उथली प्रतिलिपि को एक नई सरणी ऑब्जेक्ट में लौटाती है।"
arr.slice(0, -1)
सबसे अच्छा जवाब है।
उदाहरण से सीखें:
let array_1 = [1,2,3,4];
let array_2 = [1,2,3,4];
let array_3 = [1,2,3,4];
array_1.splice(-1,1) // output --> [4] array_1 = [1,2,3]
array_2.slice(0,-1); // output --> [1,2,3] array_2 = [1,2,3,4]
array_3.pop(); // output --> 4 array_3 = [1,2,3]
मैं विचार करूंगा .pop()
सबसे 'सही' समाधान मानूंगा, हालांकि, कभी-कभी यह काम नहीं कर सकता है क्योंकि आपको अंतिम तत्व के बिना सरणी का उपयोग करने की आवश्यकता है ...
ऐसे मामले में आप निम्नलिखित का उपयोग करना चाह सकते हैं, यह वापस आ जाएगा [1,2,3]
var arr = [1,2,3,4];
console.log(arr.splice(0,arr.length-1));
जबकि .pop()
लौटेगा 4
:
var arr = [1,2,3,4];
console.log(arr.pop());
जो वांछनीय नहीं हो सकता है ...
आशा है कि यह आपको कुछ समय बचाता है।
बस अपने उपयोग के मामले के लिए निम्नलिखित का उपयोग करें:
var arr = [1,2,3,4];
arr.pop() //returns 4 as the value
arr // value 4 is removed from the **arr** array variable
सिर्फ एक नोट। जब आप pop()
फ़ंक्शन निष्पादित करते हैं, भले ही लाइन पॉपप्ड आइटम लौटाती है तो मूल सरणी प्रभावित होती है और पॉप्डेड तत्व हटा दिया जाता है।
आप इसे दो तरीकों से कर सकते हैं splice()
:
arr.splice(-1,1)
arr.splice(arr.length-1,1)
splice(position_to_start_deleting, how_many_data_to_delete)
दो पैरामीटर लेता है।
position_to_start_deleting
: शून्य आधारित सूचकांक जहां से हटाना शुरू करना है।
how_many_data_to_delete
: संकेतित सूचकांक से, कितने लगातार डेटा हटाए जाने चाहिए।
आप अंतिम तत्व को किसी सरणी से अंतिम तत्व को हटाने के pop()
रूप में उपयोग करके भी निकाल सकते हैं pop()
।
उपयोगarr.pop()
arr.slice(-1)
सरणी के अंतिम तत्व की एक प्रति लौटाएगा , लेकिन मूल सरणी को असम्बद्ध छोड़ देता है।
n
किसी सरणी से अंतिम तत्वों को निकालने के लिए , का उपयोग करेंarr.splice(-n)
"स्प्लिस" में "पी" पर ध्यान दें)। रिटर्न वैल्यू एक नया एरे होगा जिसमें हटाए गए तत्व होंगे।
सरल, अभी तक n == 1
, उपयोग के लिएval = arr.pop()
किसी सरणी के अंतिम तत्व को हटाने और संग्रहीत करने के लिए यह विधि अधिक सहायक है।
var sampleArray = [1,2,3,4];// Declaring the array
var lastElement = sampleArray.pop();//this command will remove the last element of `sampleArray` and stores in a variable called `lastElement` so that you can use it if required.
अब परिणाम हैं:
console.log(sampleArray); //This will give you [1,2,3]
console.log(lastElement); //this will give you 4
यह ध्यान देने योग्य है कि slice
दोनों एक वापस आ जाएगी नई सरणी, जबकि .pop()
और .splice()
उत्परिवर्तित जाएगा मौजूदा सरणी।
यदि आप एक जंजीर कमांड शैली के साथ डेटा के संग्रह को संभालना पसंद करते हैं, तो आप वास्तव में साथ रहना चाहेंगे slice
इस तरह से कुछ के चाहेंगे।
उदाहरण के लिए:
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArrayOfThings = myArray
.filter(x => x > 5) // only bigly things
.slice(-1) // get rid of the last item
.map(x => `The number is: ${x}`);// map to a set of strings
इसके बारे में "पॉप" के साथ एक ही तरह का काम करने के लिए, और चर प्रबंधन के बारे में बहुत अधिक गड़बड़ करने की आवश्यकता हो सकती है, इसके विपरीत map
,filter
, आदि, आप एक नई सरणी वापस नहीं मिलता है।
यह उसी तरह की चीज है push
, जो किसी आइटम को किसी सरणी के अंत में जोड़ता है। आप इससे बेहतर हो सकते हैं concat
क्योंकि इससे आप प्रवाह को बनाए रख सकते हैं।
myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArrayOfThings = myArray
.filter(x => x > 5) // only bigly things
.slice(-1) // get rid of the "10"
.concat([100]) // note with concat, you must pass an array
.map(x => `The number is: ${x}`) // map to a set of strings
ब्याह (सूचकांक, howmany) - यह समाधान अच्छा लगता है। लेकिन यह howmany केवल पॉजिटिव एरे इंडेक्स के लिए काम करेगा। पिछले दो वस्तुओं या तीन वस्तुओं को हटाने के लिए सूचकांक का ही उपयोग करें।
उदाहरण के लिए, अंतिम दो वस्तुओं को हटाने के लिए ब्याह (-2)। अंतिम तीन वस्तुओं को हटाने के लिए ब्याह (-3)।
अगर आप तत्वों को हटा दिया गया है, यह जानने के लिए परवाह नहीं है, तो Lodash के साथ , आप dropRight का उपयोग कर सकते हैं :
_.dropRight([1, 2, 3])
// => [1, 2]
_.dropRight([1, 2, 3], 2);
// => [1]
var a = [1,2,3,4,5,6];
console.log(a.reverse().slice(1).reverse());
//Array(5) [ 1, 2, 3, 4, 5 ]
2019 ECMA5 समाधान:
const new_arr = arr.reduce((d, i, idx, l) => idx < l.length - 1 ? [...d, i] : d, [])
गैर-विनाशकारी, सामान्य, एक-लाइनर और केवल आपके सरणी के अंत में एक कॉपी और पेस्ट की आवश्यकता होती है।
I would like to remove the last element
:। मूल सरणी पर एक विनाशकारी / उत्परिवर्तन ऑपरेशन की आवश्यकता है।
आप कहें var arr = [1,0,2]
arr.splice(-1,1)
तुम्हारे पास लौट आएगा array [1,0];
जबकि arr.slice(-1,1)
तुम पर लौट आएगाarray [2];
यह अंतिम आइटम निकालने का अच्छा तरीका है:
if (arr != null && arr != undefined && arr.length > 0) {
arr.splice(arr.length - 1, 1);
}
निम्नलिखित के रूप में ब्याह का विवरण:
ब्याह (स्टार्टइंडेक्स, ब्याह की संख्या)
var stack = [1,2,3,4,5,6];
stack.reverse().shift();
stack.push(0);
आउटपुट होगा: ऐरे [0,1,2,3,4,5] । इससे आप एक ही मान रखने वाले तत्वों को उतनी ही मात्रा में रख पाएंगे, जितना कि आप एक नए मूल्य को धक्का देते हैं।