2008-11-13 8 views
5

मुझे पता है कि jQuery और प्रोटोटाइप में एक सरणी में प्रत्येक तत्व पर पुनरावृत्ति के लिए $ .each() फ़ंक्शन है। क्या यूयूआई इस के साथ कोई मदद प्रदान करता है?मैं यूयूआई में इंडेक्स का उपयोग किए बिना जावास्क्रिप्ट सरणी कैसे देखूं?

उत्तर

5

आपको से सरणी से क्या बचाता है?

for(var i=0; i<ary.length; i++) 
    // assuming that ary[] contains objects with a DoSometing() method 
    ary[i].doSomething(); 
+0

पोस्टर YUI के लिए कहा, उसने ऐसा नहीं किया? – Zlatko

+0

@zladuric: हाँ, उसने किया। लेकिन यह मुझे लगता है (और अभी भी लगता है) कि जावास्क्रिप्ट ढांचे लोगों को भूल जाते हैं कि * वास्तविक, सरल जावास्क्रिप्ट * वे उपयोग कर सकते हैं, और यही वह है जिसे मैं इंगित करना चाहता था। इसके अलावा, संभावना है कि लूप के लिए किसी भी 'array.each (कॉलबैक) 'कार्यान्वयन को बेहतर बनाता है। – Tomalak

+0

ठीक है। मैं इसमें शामिल नहीं होना चाहता था, मैंने सोचा कि इस तरह के उत्तर (जो प्रभावी रूप से प्रश्न का उत्तर नहीं देते हैं, बल्कि किसी और चीज को इंगित करते हैं) प्रश्नों पर टिप्पणियों पर जाते हैं, जवाब नहीं देते हैं। हालांकि, मैं बेवकूफ हो सकता है। – Zlatko

7

YAHOO.util.Dom बैच समारोह जो निम्नलिखित हस्ताक्षर हैं है:

कोई | सरणी बैच (एल, विधि, ओ, ओवरराइड)

, कहाँ एल एक डोम तत्व या DOM तत्वों की एक सरणी है विधि एक समारोह है कि सरणी में प्रत्येक तत्व पारित हो जाएगा है इसके पहले तर्क के रूप में, एक वैकल्पिक दूसरा तर्क है, और ओवरराइड एक बूलियन मान निर्धारित करता है कि अगर गुंजाइश खिड़की (गलत) होना चाहिए या (सही)

तो तुम सकता है कैलोरी है एल इसे इस तरह:

function setDisplay(el, display) { 
    el.style.display = display; 
} 

YAHOO.util.Dom.batch(document.getElementsByTagName('div'), setDisplay, 'none'); 

शायद आपकी ज़रूरतों को पूरा करेगा।

2

YUI3 में:

Y.Array.each(myArray, function(element) { 
    Y.log(element); 
}); 

या यहाँ तक कि:

Y.Array.each(myArray, function(element, index, array) { 
    ... 
}); 
संबंधित मुद्दे