Array.prototype.values()

82 阅读1分钟

函数特点

  • Array.prototype.values是Array.prototype[Symbol.iterator]的默认实现
Array.prototype.values === Array.prototype[Symbol.iterator]; // true
  • 返回一个新的数组迭代对象
  • 不会跳过空值【空槽】
const ary = [1,2,3,,5].values();
for (let val of ary) {
    console.log(val); // 依次打印出1 2 3 undefined 5
}

函数语法

Array.prototype.values();

使用场景

  • 使用for of循环迭代
const iterator = ['a', 'b', 'c' , 'd'].values();
for (const letter of iterator) {
    console.log(letter); // 依次打印出'a' 'b' 'c' 'd'
}
  • 使用.next()迭代
const iterator = ['a', 'b', 'c' , 'd'].values();
iterator.next(); // Object { value: 'a', done: false }
iterator.next().value; // 'b'
iterator.next()['value']; // 'c'
iterator.next(); // Object { value: 'd', done: false }
iterator.next(); // Object { value: undefined, done: true }
iterator.next().value; // undefined