var arr = Array.prototype.slice.call( htmlCollection )
"मूल" कोड का उपयोग करके समान प्रभाव होगा।
संपादित करें
चूंकि यह बहुत सारे विचार प्राप्त करता है, ध्यान दें (प्रति @ oriol की टिप्पणी) कि निम्नलिखित अधिक संक्षिप्त अभिव्यक्ति प्रभावी रूप से समतुल्य है:
var arr = [].slice.call(htmlCollection);
लेकिन @ JussiR की टिप्पणी पर ध्यान दें, "क्रिया" रूप के विपरीत, यह प्रक्रिया में एक खाली, अप्रयुक्त और वास्तव में अनुपयोगी सरणी उदाहरण बनाता है। इस बारे में क्या कंपाइलर प्रोग्रामर के केन के बाहर हैं।
संपादित करें
ECMAScript 2015 (ES 6) के बाद से Array.from भी है :
var arr = Array.from(htmlCollection);
संपादित करें
ECMAScript 2015 प्रसार ऑपरेटर भी प्रदान करता है , जो कार्यात्मक रूप से इसके बराबर है Array.from
(हालांकि ध्यान दें कि Array.from
दूसरे तर्क के रूप में मैपिंग फ़ंक्शन का समर्थन करता है)।
var arr = [...htmlCollection];
मैंने पुष्टि की है कि उपरोक्त दोनों काम करते हैं NodeList
।
उल्लिखित विधियों के लिए एक प्रदर्शन की तुलना: http://jsben.ch/h2IFA
for (var a=[], i=collection.length; i;) a[--i] = collection[i];
इसलिए "कोन" का बहुत कुछ नहीं है :-)