javascript - JS中真正的数组和数组迭代器有什么区别

标签 javascript arrays iterator

如果我们有:令 myArr = [1, 2, 3, 4] ,如果我们这样做: myArr.values();我们将得到 Array Iterator [1, 2, 3, 4]。 那么,数组和数组迭代器有什么区别呢?

最佳答案

它们有不同的目的和功能:

  • 数组是房间,迭代器是房间守卫,允许移动到下一个房间
  • Iterator 允许您遍历,例如next() 可以被调用
  • Iterator 不允许您通过索引访问,例如迭代器[0]

enter image description here

const x = [1, 2, 3];
const iterator = x.values();

console.log(x[1]);    //OK -> 2
console.log(iterator[1]);  //   -> Undefined

console.log(iterator.next()); //OK -> 1
console.log(iterator.next()); //OK -> 2
console.log(iterator.next()); //OK -> 3
console.log(iterator.next()); //OK -> { value: undefined, done: true }
//x.next();         //✗Error: x.next is not a function

关于javascript - JS中真正的数组和数组迭代器有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58667005/

相关文章:

javascript - 使用此代码无法显示多个 div

javascript - 使用 PdfGenerator 将页码添加到 PDF

c++ - C++ 中数组范围内的有效元素计数

php - 通过 PHP(多维数组)合并非常复杂的 SQL 数据结果

iterator - 如何编写值加倍迭代器?

c++ - 围绕 const char* 和长度的轻量级容器,无需复制数据

java - 我将如何迭代自定义对象列表,比较列表中的情侣并根据特定条件删除?

javascript - 更新函数后记录状态,仍然输出初始状态

python - 将数组拆分为预测矩阵和响应向量

javascript - 如何将每行的值添加到td?