NodeList में अब सभी प्रमुख ब्राउज़रों में forEach () है
एमडीएन पर नोडल फॉर ईच () देखें ।
मूल उत्तर
इनमें से कोई भी उत्तर यह नहीं समझाता है कि नॉडलिस्ट अर्रे से विरासत में क्यों नहीं मिली है, इस प्रकार यह forEach
सभी और बाकी के लिए अनुमति देता है ।
इसका उत्तर इस पूर्व-चर्चा सूत्र पर मिलता है । संक्षेप में, यह वेब को तोड़ता है:
यह समस्या कोड थी जिसे गलत तरीके से उदाहरण के रूप में माना गया था कि यह उदाहरण Array.prototype.confat के साथ संयोजन में एक सरणी था।
Google के बंद पुस्तकालय में एक बग था, जिसके कारण लगभग सभी Google के ऐप्स विफल हो गए थे। यह मिलते ही लाइब्रेरी को अपडेट कर दिया गया था, लेकिन वहां अभी भी कोड आउट हो सकता है जो कॉनकैट के संयोजन में एक ही गलत धारणा बनाता है।
यानी कुछ कोड ने कुछ ऐसा किया
if (x instanceof Array) {
otherArray.concat(x);
} else {
doSomethingElseWith(x);
}
हालांकि, concat
अन्य वस्तुओं से "वास्तविक" सरणियों (उदाहरण के लिए एरियर) को अलग तरीके से व्यवहार करेंगे:
[1, 2, 3].concat([4, 5, 6])
[1, 2, 3].concat(4)
तो इसका मतलब है कि उपरोक्त कोड तब टूट x
गया था जब एक नोडलिस्ट था, क्योंकि इससे पहले कि वह नीचे चला गया था doSomethingElseWith(x)
, जबकि बाद में यह otherArray.concat(x)
रास्ते से नीचे चला गया , जो कि कुछ अजीब x
था क्योंकि यह एक वास्तविक सरणी नहीं था।
कुछ समय के लिए एक Elements
वर्ग के लिए एक प्रस्ताव था जो कि ऐरे का वास्तविक उपवर्ग था, और इसे "नए नोडलिस्ट" के रूप में उपयोग किया जाएगा। हालाँकि, इसे डोम स्टैंडर्ड से हटा दिया गया था , कम से कम अभी के लिए, क्योंकि यह तकनीकी और विनिर्देश-संबंधित कारणों के लिए अभी तक लागू करने के लिए संभव नहीं था।