নোডলিস্টে এখন সমস্ত বড় ব্রাউজারে প্রতিটি () জন্য রয়েছে
দেখুন nodeList foreach () MDN উপর ।
আসল উত্তর
এই উত্তরগুলির মধ্যে কোনওটিই ব্যাখ্যা করে না যে কেন নোডলিস্ট অ্যারে থেকে উত্তরাধিকার সূত্রে আসে না, এভাবে এটি থাকার অনুমতি দেয় forEach
এবং বাকী সমস্তই।
উত্তরটি এই এসএস-আলোচনা থ্রেডে পাওয়া যায় । সংক্ষেপে, এটি ওয়েবটি ভেঙে দেয়:
সমস্যাটি কোডটি ছিল যা ভুলভাবে উদাহরণস্বরূপ ধরে নিয়েছিল যে উদাহরণটি অ্যারে.প্রোটোটাইপ.কনক্যাটের সাথে মিশে একটি অ্যারে ছিল।
গুগলের ক্লোজার লাইব্রেরিতে একটি বাগ ছিল যার কারণে প্রায় সমস্ত গুগলের অ্যাপ্লিকেশন ব্যর্থ হয়েছিল to এটি খুঁজে পাওয়ার সাথে সাথে লাইব্রেরিটি আপডেট করা হয়েছিল তবে এখনও সেখানে কোড থাকতে পারে যা কনকটের সাথে একই ভুল অনুমানটি তৈরি করে।
যে, কিছু কোড কিছু ভালো লেগেছে
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
শ্রেণীর জন্য প্রস্তাব ছিল যা অ্যারের প্রকৃত উপক্লাস ছিল এবং এটি "নতুন নোডলিস্ট" হিসাবে ব্যবহৃত হবে। তবে, এটি কমপক্ষে আপাতত DOM স্ট্যান্ডার্ড থেকে সরানো হয়েছে , কারণ বিভিন্ন প্রযুক্তিগত এবং নির্দিষ্টকরণ সংক্রান্ত বিভিন্ন কারণে এটি এখনও কার্যকর করা সম্ভব ছিল না।