2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
1: सरणीं भ्रमितुं for...of इत्यस्य उपयोगं कुर्वन्तु
let numbers = [1, 2, 3, 4, 5];
for (let number of numbers) {
console.log(number); // 依次输出 1 到 5
}
2: तारं भ्रमितुं for...of इत्यस्य उपयोगं कुर्वन्तु
let str = "Hello";
for (let char of str) {
console.log(char); // 依次输出 'H', 'e', 'l', 'l', 'o'
}
3: कस्टम पुनरावर्तकः
let myIterable = {
[Symbol.iterator]: function* () {
yield 1;
yield 2;
yield 3;
}
};
for (let value of myIterable) {
console.log(value); // 依次输出 1, 2, 3
}
४: कस्टम् इटरेटर् इत्यनेन सह for...of इत्यस्य उपयोगः
function* numberIterator(max) {
let current = 1;
while (current <= max) {
yield current++;
}
}
for (let number of numberIterator(5)) {
console.log(number); // 依次输出 1 到 5
}
५: अपवादं ग्रहीतुं for...of इत्यस्य उपयोगं कुर्वन्तु
let iterable = [1, 2, 3, 4, 'error', 6];
for (let item of iterable) {
try {
if (typeof item === 'string') {
throw new Error('Invalid value');
}
console.log(item * 2); // 依次输出 2, 4, 6, 8
} catch (e) {
console.error(e.message); // 输出:Invalid value
}
}
6: पुनरावर्तनीयानि वस्तुनि सरणीरूपेण परिवर्तयितुं Array.from इत्यस्य उपयोगं कुर्वन्तु
let str = "Iterator";
let arrayFromIterable = Array.from(str);
console.log(arrayFromIterable); // 输出:['I', 't', 'e', 'r', 'a', 't', 'o', 'r']
संगतता:for...of लूप्स् आधुनिकब्राउजर्स् तथा Node.js इत्यत्र समर्थिताः सन्ति, परन्तु केचन प्राचीनाः जावास्क्रिप्ट् वातावरणाः न समर्थाः भवेयुः ।
प्रदर्शनम्: बृहत् संग्रहाणां कृते, for...of लूप् पारम्परिक for लूप् इव कार्यक्षमः न भवेत् यतोहि प्रत्येकं पुनरावृत्तिः पुनरावर्तकस्य next() मेथड् इत्यस्य आह्वानस्य आवश्यकता भवति ।
7: सरणीयाः Symbol.iterator
let arr = [1, 2, 3];
// 数组是可迭代对象,具有默认的 Symbol.iterator 属性
let iterator = arr[Symbol.iterator]();
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: 3, done: false }
console.log(iterator.next()); // { value: undefined, done: true }
8: स्ट्रिंग् इत्यस्य Symbol.iterator
let str = "abc";
// 字符串也是可迭代对象
let strIterator = str[Symbol.iterator]();
console.log(strIterator.next()); // { value: "a", done: false }
console.log(strIterator.next()); // { value: "b", done: false }
console.log(strIterator.next()); // { value: "c", done: false }
console.log(strIterator.next()); // { value: undefined, done: true }
9: Symbol.iterator इत्यस्य मैन्युअल् रूपेण उपयोगं कुर्वन्तु
let myObj = {
items: [3, 5, 7],
[Symbol.iterator]: function* () {
for (let item of this.items) {
yield item * 2; // 迭代器返回值的两倍
}
}
};
let iterator = myObj[Symbol.iterator]();
console.log(iterator.next()); // { value: 6, done: false }
console.log(iterator.next()); // { value: 10, done: false }
console.log(iterator.next()); // { value: 14, done: false }
console.log(iterator.next()); // { value: undefined, done: true }