मैं एरो फू से कुंजी 'बार' को कैसे हटाऊं ताकि 'बार' दिखाई न दे
for(key in foo){alert(key);}
मैं एरो फू से कुंजी 'बार' को कैसे हटाऊं ताकि 'बार' दिखाई न दे
for(key in foo){alert(key);}
जवाबों:
डिलीट का उपयोग न करें क्योंकि यह किसी एलीमेंट से एलीमेंट को नहीं हटाएगा जो इसे केवल अपरिभाषित के रूप में सेट करेगा, जो तब एरे की लंबाई में सही ढंग से परिलक्षित नहीं होगा।
आप कुंजी जानते हैं कि आप का उपयोग करना चाहिए जोड़ यानी
myArray.splice(key, 1);
स्टीवन की स्थिति में किसी के लिए आप कुछ इस तरह की कोशिश कर सकते हैं:
for (var key in myArray) {
if (key == 'bar') {
myArray.splice(key, 1);
}
}
या
for (var key in myArray) {
if (myArray[key] == 'bar') {
myArray.splice(key, 1);
}
}
for (var key in myArray)बजाय का उपयोग करें for (key in myArray)- अन्यथा keyएक वैश्विक चर है और यदि आप उस लूप के अंदर एक फ़ंक्शन कहते हैं जिसमें समान समस्या है, तो आपको अप्रत्याशित परिणाम प्राप्त होंगे।
delete foo[key];
: डी
eval। ऑब्जेक्ट / एरे की एक कुंजी / इंडेक्स को हटाने का उपयोग न करने वाले बहुत सरल तरीकों से प्राप्त किया जा सकता है eval।
एक महत्वपूर्ण नोट: जावास्क्रिप्ट एरर्स उन सहयोगी सरणियों की तरह नहीं हैं जिन्हें आप PHP से इस्तेमाल किया जा सकता है। यदि आपकी "सरणी कुंजी" एक स्ट्रिंग है, तो आप अब किसी सरणी की सामग्री पर काम नहीं कर रहे हैं। आपकी सरणी एक ऑब्जेक्ट है, और आप <प्रमुख नाम> नाम के सदस्य तक पहुंचने के लिए ब्रैकेट नोटेशन का उपयोग कर रहे हैं। इस प्रकार:
var myArray = []; myArray ["बार"] = सच; myArray ["foo"] = true; चेतावनी (myArray.length); // रिटर्न 0।
क्योंकि आपने ऐरे में तत्व नहीं जोड़े हैं, इसलिए आपने केवल मायरे के बार और फू सदस्यों को संशोधित किया है।
यदि आपको पता है कि मुख्य नाम इस तरह से है:
delete array['key_name']
यह है कि मैं यह कैसे करेंगे
myArray.splice( myArray.indexOf('bar') , 1)
http://www.internetdoc.info/javascript-function/remove-key-from-array.htm
removeKey(arrayName,key);
function removeKey(arrayName,key)
{
var x;
var tmpArray = new Array();
for(x in arrayName)
{
if(x!=key) { tmpArray[x] = arrayName[x]; }
}
return tmpArray;
}