可迭代 - JavaScript 挑战
您可以在 github 仓库中找到这篇文章中的所有代码。
可迭代相关的挑战
可迭代
/** * @param {any} data * @return {object} */ function createCustomIterable(data) { return { [Symbol.iterator]() { let index = 0; return { next() { if (index < data.length) { return { value: data[index++], done: false, }; } else { return { value: undefined, done: true, }; } }, }; }, }; } // Usage example: const customIterable = createCustomIterable([1, 2, 3, 4]); // Using for...of loop for (const item of customIterable) { console.log(item); } /** * 1 * 2 * 3 * 4 */ // Using spread operator const arrayFromIterable = [...customIterable]; console.log(arrayFromIterable); // => [1, 2, 3, 4] // Using Array.from() const anotherArray = Array.from(customIterable); console.log(anotherArray); // => [1, 2, 3, 4]
参考
- 迭代器 - mdn
- 迭代协议 - mdn
- [iterator.prototypesymbol.iterator - mdn](https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/iterator/symbol.iterator)
以上就是可迭代 - JavaScript 挑战的详细内容,更多请关注其它相关文章!