博客
关于我
js中for of遍历数组获取index的方法
阅读量:786 次
发布时间:2019-03-24

本文共 804 字,大约阅读时间需要 2 分钟。

在路劲写代码的过程中,有时候可能会遇到一种情况:当我们使用数组的 for... of 遍历来遍历元素时,发现无法直接获取到每个元素的索引值。这种情况可能会让人感到有点困惑,尤其是对于刚入门的开发者来说。我们需要明确了解 for... of 与索引的关系,以便更好地利用它。在这种情况下,通常的解决方法是将数组转换为 Map 数据结构,然后利用 for... of 进行遍历,这样就能同时获取到索引和对应的元素值了。

为了更方便地理解这一点,我们可以对原来的数组进行一些操作。首先,我们可以将数组中的每个元素与其对应的索引值一并存储到 Map 中。具体来说,我们可以利用 Array.prototype.map 方法将数组中的每个元素转换成一个包含索引和值的数组,例如 ['a', 'b', 'c'] 会被转换成 [0, 'a'], [1, 'b'], [2, 'c']。然后,我们将这些数组作为值存入 Map 中。

例如,你可以这样做:

let arr = ['a', 'b', 'c'];for (let [index, item] of new Map(arr.map((item, index) => [index, item]))) {    console.log(index, item);}

这样一来,当我们使用 for... of 遍历 Map 的时候,每个遍历结果都会包含两个值:一个是索引,另一个是对应的数组元素。通过这种方式,我们就可以在同一个遍历中同时获得索引和对应的数组元素了。最终的输出结果会是:

0 "a"

1 "b"

2 "c"

这种方法虽然看起来有些绕,但实际上是一个非常常用的技巧。它的核心思想是将数组和索引一并存储起来,这样在需要同时处理索引和元素值的情况下,可以避免在遍历过程中额外添加索引参数。这种做法在日常开发中非常实用,特别是在需要同时处理元素和其位置的场景中。

转载地址:http://hrmkk.baihongyu.com/

你可能感兴趣的文章
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
mysql 的GROUP_CONCAT函数的使用(group_by 如何显示分组之前的数据)
查看>>
MySQL 的instr函数
查看>>
MySQL 的mysql_secure_installation安全脚本执行过程介绍
查看>>
MySQL 的Rename Table语句
查看>>
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>