इस धागे पर पहले से ही बहुत सारे अद्भुत जवाब हैं। हालाँकि मैं अपने अनुभव को तब साझा करना चाहता था जब मैंने ES5 संदर्भ में "एरीथ एलीमेंट को हटा दें" को हल करने की कोशिश की।
जावास्क्रिप्ट सरणियों में शुरू या अंत से तत्वों को जोड़ने / हटाने के लिए अलग-अलग तरीके हैं। य़े हैं:
arr.push(ele) - To add element(s) at the end of the array
arr.unshift(ele) - To add element(s) at the beginning of the array
arr.pop() - To remove last element from the array
arr.shift() - To remove first element from the array
आवश्यक रूप से उपरोक्त विधियों में से कोई भी सरणी से nth तत्व को निकालने के लिए सीधे उपयोग नहीं किया जा सकता है।
ध्यान देने योग्य तथ्य यह है कि यह जावा इट्रेटर के उपयोग के विपरीत है जिसके कारण पुनरावृत्ति करते समय एक संग्रह के लिए nth तत्व को निकालना संभव है।
यह मूल रूप Array.splice
से nth तत्व को हटाने के लिए केवल एक सरणी विधि के साथ हमें छोड़ता है (ऐसी अन्य चीजें हैं जो आप इन विधियों के साथ भी कर सकते हैं, लेकिन इस प्रश्न के संदर्भ में मैं तत्वों को हटाने पर ध्यान केंद्रित कर रहा हूं)
Array.splice(index,1) - removes the element at the index
यहाँ मूल उत्तर (टिप्पणियों के साथ) से कॉपी किया गया कोड है:
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter else it would run into IndexOutBounds exception
{
if (arr[i] === "four" || arr[i] === "two") {
//splice modifies the original array
arr.splice(i, 1); //never runs into IndexOutBounds exception
console.log("Element removed. arr: ");
} else {
console.log("Element not removed. arr: ");
}
console.log(arr);
}
एक और उल्लेखनीय तरीका है Array.slice
। हालाँकि इस विधि का वापसी प्रकार हटाए गए तत्व हैं। इसके अलावा यह मूल सरणी को संशोधित नहीं करता है। संशोधित कोड स्निपेट निम्नानुसार है:
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter
{
if (arr[i] === "four" || arr[i] === "two") {
console.log("Element removed. arr: ");
console.log(arr.slice(i, i + 1));
console.log("Original array: ");
console.log(arr);
}
}
कहा गया है कि, हम अभी भी Array.slice
नीचे दिखाए गए अनुसार nth तत्व को निकालने के लिए उपयोग कर सकते हैं। हालाँकि यह बहुत अधिक कोड है (इसलिए अक्षम है)
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter
{
if (arr[i] === "four" || arr[i] === "two") {
console.log("Array after removal of ith element: ");
arr = arr.slice(0, i).concat(arr.slice(i + 1));
console.log(arr);
}
}
Array.slice
विधि ला redux कार्यात्मक प्रोग्रामिंग में अचल स्थिति प्राप्त करने के लिए अत्यंत महत्वपूर्ण है