Skip to content

可迭代对象

什么是可迭代对象?

可迭代对象指的是满足“可迭代协议”的对象,结构形式如下:

js
{
  [Symbol.iterator]: function() {
    return 迭代器
  }
}

面试题

如下代码报错信息:{(intermediate value)(intermediate value)} is not iterable

js
var [a, b] = {
  a: 3,
  b: 4,
}
console.log(a, b)

在不改动代码的情况下进行改造:

js
Object.prototype[Symbol.iterator] = function* () {
  yield* Object.values(this)
}

var { a, b } = {
  a: 3,
  b: 4,
}
console.log(a, b) // 3 4

基于 MIT 许可发布