भावना मुझे लगता है कि आप चाहते हैं के लिए एक iterator देता है, ES5 या ES2015, कोई में, अपनी ओर से कुछ काम के बिना नहीं होता है।
ES2016 में, शायद object.values
के साथ।
आपको लगता है कि जावास्क्रिप्ट में Arrays प्रभावी रूप से एक मान से एक पूर्णांक से एक मानचित्र हैं, और जावास्क्रिप्ट सरणी में मान सीधे गणना की जा सकती हैं।
['foo', 'bar'].forEach(v => console.log(v)); // foo bar
इसके अलावा, ES2015 में, आप एक वस्तु iterable Symbol.iterator
के नाम के साथ एक संपत्ति पर एक समारोह रखकर कर सकते हैं:
var obj = {
foo: '1',
bar: '2',
bam: '3',
bat: '4',
};
obj[Symbol.iterator] = iter.bind(null, obj);
function* iter(o) {
var keys = Object.keys(o);
for (var i=0; i<keys.length; i++) {
yield o[keys[i]];
}
}
for(var v of obj) { console.log(v); } // '1', '2', '3', '4'
इसके अलावा, अन्य उत्तर प्रति, वहाँ अन्य बनाया-इन कर रहे हैं जो आपको इच्छित कार्यक्षमता प्रदान करता है, जैसे Map
(लेकिन WeakMap
क्योंकि यह पुन: प्रयोज्य नहीं है) और Set
उदाहरण के लिए (लेकिन ये अभी तक सभी ब्राउज़रों में मौजूद नहीं हैं)।
सवाल तो आम है, कि मुझे आश्चर्य है कि किसी ने पहले यह नहीं पूछा था। लेकिन मुझे स्टैक ओवरफ्लो पर ऐसा कोई सवाल नहीं मिल रहा है। –
यू iterate केवीपी। केवल चाबियाँ नहीं, आप चाबियाँ मानों या दोनों पुनरावृत्ति के भीतर पहुंच सकते हैं। मानचित्र [कुंजी] पुनरावृत्ति –
@kcbeard का मूल्य होगा - क्या आप कुछ सबूत/विनिर्देश के साथ अपने दावे (* यू iterate kvp's *) का समर्थन कर सकते हैं? – Amit