পূর্বে এখানে উত্তর দেওয়া প্রশ্নগুলি বলেছিল যে এটি ছিল দ্রুততম উপায়:
//nl is a NodeList
var arr = Array.prototype.slice.call(nl);
আমার ব্রাউজারে বেঞ্চমার্কিংয়ে আমি দেখতে পেয়েছি যে এটি এর চেয়ে 3 গুণ বেশি ধীর:
var arr = [];
for(var i = 0, n; n = nl[i]; ++i) arr.push(n);
তারা উভয়ই একই আউটপুট উত্পাদন করে তবে আমার বিশ্বাস করা শক্ত হয় যে আমার দ্বিতীয় সংস্করণটি দ্রুততম উপায়, বিশেষত যেহেতু লোকেরা অন্যথায় এখানে বলেছে।
এটি কি আমার ব্রাউজারে ক্রিক (ক্রোমিয়াম 6)? না কোন দ্রুততর উপায় আছে?
সম্পাদনা: যে কেউ যত্ন করে তাদের জন্য আমি নিম্নলিখিতটি স্থির করেছিলাম (যা আমি পরীক্ষিত প্রতিটি ব্রাউজারে সবচেয়ে দ্রুত বলে মনে হয়):
//nl is a NodeList
var l = []; // Will hold the array of Node's
for(var i = 0, ll = nl.length; i != ll; l.push(nl[i++]));
সম্পাদনা 2: আমি আরও দ্রুততর একটি উপায় খুঁজে পেয়েছি
// nl is the nodelist
var arr = [];
for(var i = nl.length; i--; arr.unshift(nl[i]));
var i = nl.length, arr = new Array(i); for(; i--; arr[i] = nl[i]);
arr[arr.length] = nl[i];
arr.push(nl[i]);
যেহেতু এটি কোনও ফাংশন কল এড়ায় তার চেয়ে দ্রুত হতে পারে ।