JavaScript ES6数组entries方法获取索引和值迭代器
时间:2026-08-18 | 作者:电竞小硕 | 阅读:0entries() 返回的是一个 Array Iterator 对象。 每迭代一次,都会产出一个 [index, value] 这样的二元数组。它既可以配合 for...of、展开运算符使用,也能直接通过 next() 逐项读取。
它特别适合需要同时拿到索引和值的场景。
entries() 是 ES6 为数组新增的原型方法。它返回一个可迭代对象(Iterator),每次迭代都会生成一个包含索引和对应元素的二元数组 [index, value]。
entries() 返回的是什么
调用 arr.entries() 时,并不会立刻把整个数组遍历一遍。它返回的是一个迭代器对象。
这个对象带有 next() 方法。每调用一次,就会拿到一个形如 { value: [index, item], done: false } 的结果对象。
- 返回值是
Array Iterator类型,属于可迭代协议(iterable) - 每个
value是长度为 2 的数组:[索引, 元素] - 索引从
0开始,与数组位置严格对应
三种常用获取方式
你可以用以下几种方式来消费这个迭代器:
- for...of 循环(最常用)
const arr = ['a', 'b', 'c'];
for (const [i, v] of arr.entries()) {
console.log(i, v); // 0 'a' → 1 'b' → 2 'c'
} - 展开成数组
[...arr.entries()] // [[0,'a'], [1,'b'], [2,'c']] - 手动迭代
const it = arr.entries();
console.log(it.next()); // { value: [0, 'a'], done: false }
console.log(it.next()); // { value: [1, 'b'], done: false }
entries 和其他类似方法的区别
别和 keys()、values() 搞混。三者的返回内容不同:
arr.keys()→ 只返回索引:[0, 1, 2]arr.values()→ 只返回元素:['a', 'b', 'c']arr.entries()→ 同时返回索引+值:[[0,'a'], [1,'b'], [2,'c']]
实际使用小提示
entries() 常用于需要同时访问下标和内容的场景。
- 构建带序号的列表
- 查找元素位置
- 转换为 Map
- 转成 Map:
new Map(arr.entries())→Map(3) { 0 => 'a', 1 => 'b', 2 => 'c' } - 配合 findIndex 或 filter 更清晰:
arr.entries().find(([i, v]) => v === 'b')→[1, 'b'] - 注意:空数组调用 entries 仍返回有效迭代器,只是立刻 done: true
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- JavaScript正则表达式批量处理HTML标签转义与替换方法
- 时间:2026-08-21
-
- JavaScript函数默认参数的精准JSDoc类型注解方法
- 时间:2026-08-21
-
- JavaScript设置Cookie的SameSite属性防范CSRF攻击
- 时间:2026-08-21
-
- JavaScript中BOM如何打开新的浏览器窗口标签
- 时间:2026-08-20
-
- JavaScript微任务队列在事件循环中的执行机制
- 时间:2026-08-20
-
- JavaScript中网络超时如何用流程控制实现中断
- 时间:2026-08-20
-
- JavaScript防抖函数原理与减少高频事件触发方法
- 时间:2026-08-20
-
- TypeScript六个颠覆认知的核心知识点解析
- 时间:2026-08-20
精选合集
更多大家都在玩
大家都在看
更多-
- 以下哪种食材被称为“地下苹果” 蚂蚁庄园今日答案9.18
- 时间:2026-09-17
-
- 蚂蚁庄园今天答题答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园答题今日答案2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园小课堂2026年9月18日最新题目答案
- 时间:2026-09-17
-
- 小鸡答题今天的答案是什么2026年9月18日
- 时间:2026-09-17
-
- 蚂蚁庄园每日答题答案2026年9月18日
- 时间:2026-09-17
-
- 蔬菜洗完掉色,说明是被染色了,是真的吗 蚂蚁庄园今日答案9月18日
- 时间:2026-09-17
-
- 满襟蜡绘花纹巧染就花纹当绣裳说的是哪种传统技艺 蚂蚁新村今日答案2026.9.17
- 时间:2026-09-17
