javascript - 使用 next() 时如何清除 Iterable 对象的当前位置?

标签 javascript ecmascript-6

如何在 for 循环之后或使用 .next() 方法之后清除当前位置?

 const arr = [1,4,2];
 for(v of arr){
     // console.log(v); // 1 4 2
 }
 //  console.log(arr.next())  //arr.next is not a function

 /*
 * 
 * Why? because it is an iterable not an iterator,
 * and to be able to use .next we need to call the iterator method 
 * this iterable’s Symbol.iterator returns:
 * */
 const iter = arr[Symbol.iterator]();

 console.log(iter.next());
 console.log(iter.next());
 console.log(iter.next());
 console.log(iter.next());

此后我想从项目中获取 1 个值。

如何做到这一点?

此示例来自http://blog.dubizzle.com/boilerroom/2017/01/09/introduction-javascript-iterables-iterators-generators/

最佳答案

本身无法“清除当前位置”。但是,此答案中建议了有用的替代方案:Is it possible to reset an ECMAScript 6 generator to its initial state? .

关于javascript - 使用 next() 时如何清除 Iterable 对象的当前位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42411078/

相关文章:

javascript - 如何在同一页面连接两次GoInstant?

Javascript 函数未按正确顺序调用

javascript - 如何在图片和边缘之间居中标签

javascript - 无法解析模块说明符三

javascript - 将类数组对象转换为数组的最佳方法?

javascript - 将 [origin].concat(ray(nextStep)) 从 JavaScript 移植到 Swift

javascript - 不必要的转义字符 :\[ no-useless-escape

javascript - ES6 将对象传递给构造函数并设置属性

javascript - 我如何在 NodeJS 中模拟 ES 模块?

javascript - lodash debounce 不触发函数