.forEach
पहले से ही इस क्षमता है:
var someArray = [9, 2, 5];
someArray.forEach((item, index) => {
console.log(item); // 9, 2, 5
console.log(index); // 0, 1, 2
});
लेकिन अगर आप for...of
की क्षमताओं चाहते हैं, तो आप आइटम और सूचकांक करने के लिए सरणी map
कर सकते हैं:
for (const {item, index} of someArray.map((item, index) => ({ item, index }))) {
console.log(item); // 9, 2, 5
console.log(index); // 0, 1, 2
}
यह थोड़ा लंबा है, इसलिए यह इसे पुन: प्रयोज्य कार्य में फेंकने में मदद करता है:
function toItemIndexes<T>(a: T[]) {
return a.map((item, index) => ({ item, index }));
}
for (const {item, index} of toItemIndexes(someArray)) {
// ..etc..
}
Iterable संस्करण
यह जब ES3 या ES5 को लक्षित करता है, तो आप --downlevelIteration
संकलक विकल्प के साथ संकलन काम करेंगे।
function* toItemIndexes<T>(items: T[] | IterableIterator<T>) {
let index = 0;
for (const item of items) {
yield { item, index };
index++;
}
}
स्रोत
2016-03-19 23:16:15
देखें लेकिन टाइपप्रति संकलित "के लिए ... की" एक सरल करने के लिए जो एक सूचकांक वर सर्वव्यापी है। तो टाइपस्क्रिप्ट डेवलपर्स के लिए यह _i का उपयोग करने के लिए आसान होगा। खेल का मैदान उदाहरण देखें: bit.ly/1R9SfBR – Mick
@ मिक यह लक्ष्य पर निर्भर करता है। ES6 पर पारदर्शी होने पर यह ऐसा नहीं करता है। पारदर्शी होने पर उस अतिरिक्त कोड का कारण केवल पिछले संस्करणों में ES6 कोड काम करने के लिए है। –
आप ब्रेक कैसे कर सकते हैं; उसमें हर किसी के लिए? –