सबसे पहले, सच Objects
मूल .map()
विधि नहीं है, न तो .length
संपत्ति। तो हम या तो Arrays
या Array-like-objects
(उदाहरण के लिए jQuery ऑब्जेक्ट्स) के बारे में बात कर रहे हैं।
हालांकि, मूल for
, while
या do-while
लूप का उपयोग करने के बजाय पुनरावृत्ति करने का कोई तेज़ तरीका नहीं है। अन्य सभी कार्यात्मक संचालन प्रदर्शन करते हैं (अनुमान लगाते हैं) प्रत्येक पुनरावृत्ति के लिए एक समारोह जो लागत।
jQuery के .each()
किसी ऑब्जेक्ट को पास होने पर for-in
लूप निष्पादित करेगा। यह वस्तु पर लूप करने का सबसे तेज़ तरीका है। आप बस for-in
स्वयं का उपयोग कर सकते हैं और आप ओवरहेड कॉल को सहेज सकते हैं।
रीडबिलिटी के मामले में एक और "अच्छा" तरीका ईएस 5 सुविधाओं जैसे .keys()
और .map()
का उपयोग करना है। उदाहरण के लिए:
var myObj = {
foo: 'bar',
base: 'ball',
answer: 42,
illuminati: 23
};
Object.keys(myObj).map(function(prop) {
console.log(myObj[ prop ]);
});
कौन सा मुझे लगता है कि readabilty, convinience और प्रदर्शन के मामले में एक बहुत अच्छा tradeof है। बेशक आपको पुराने ब्राउज़र के लिए ईएस 5 एब्स्ट्रक्शन लाइब्रेरी का उपयोग करना चाहिए।
लेकिन फिर, प्रदर्शन के संदर्भ में देशी लूप को हरा करने का कोई तरीका नहीं है।
आपके उदाहरण समकक्ष नहीं हैं (न ही पहला कोड स्निपेट भावना बनाता है)। क्या आप सूची में प्रत्येक तत्व के लिए 'कुछ फ़ंक्शन' निष्पादित करने का मतलब रखते हैं? क्या यह एक मूल्य वापस करता है और आप वापसी मूल्य के साथ सूची प्रविष्टि को प्रतिस्थापित करना चाहते हैं? यह वास्तव में 'मानचित्र' का विचार है। –