array.prototype.entries() 返回一个遍历数组索引和值的迭代器,每次返回 [index, value];支持 for...of、扩展运算符和解构;不修改原数组,仅浅层迭代,不递归嵌套元素。

Array.prototype.entries() 返回一个包含数组每个元素索引和值的迭代器,每次迭代返回一个长度为 2 的数组 [index, value]。
基本用法:调用 entries() 得到迭代器
直接在数组上调用 .entries(),它不修改原数组,只返回一个新的迭代器对象:
- 该迭代器是可遍历的(支持
for...of、扩展运算符、解构等) - 每次
next()调用返回{ value: [index, element], done: false } - 遍历完后
done变为true
配合 for...of 遍历最常用
这是最直观、最常用的写法:
const arr = ['a', 'b', 'c'];
for (const [index, value] of arr.entries()) {
console.log(index, value); // 0 'a' → 1 'b' → 2 'c'
}
利用数组解构语法,直接拿到索引和值,语义清晰。
转成数组或映射处理
如果需要一次性获取所有 [index, value] 对,可用扩展运算符或 Array.from:
-
[...arr.entries()]→[[0,'a'], [1,'b'], [2,'c']] -
Array.from(arr.entries())效果相同 - 可用于
.map()等链式操作,例如:arr.entries().map(([i, v]) => `${i}:${v}`)→['0:a', '1:b', '2:c']
注意点:entries 是浅层迭代,不递归嵌套
它只处理数组第一层元素。如果数组里有对象或嵌套数组,entries() 不会展开它们:
-
[{x:1}, [2,3]].entries()返回[0, {x:1}]和[1, [2,3]] - 想遍历深层结构需额外递归或使用其他方法(如
flat()+entries())
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











