js-遍历数组或对象
JS 遍历数组或对象的方法
1. 遍历数组
1.1 最传统的 for
循环
1.2 ES5 新增的 for in
方法
注意,这里的 i
是数组元素的索引。
1.3 ES6 新增的 for of
方法
注意,这里的 i
是数组元素的值。
1.4 forEach()
方法
forEach
方法接收一个回调函数作为参数,其会对数组中的每一个元素执行该函数。
该回调函数有两个可选参数:
item
— 遍历到的当前元素index
— 当前元素的索引
但注意,forEach
方法中间不能退出循环,且对于空数组不会执行回调函数!
实际上,除了 forEach
,还可以用很多数组方法来遍历数组,例如:filter
、map
、reduce
、every
、some
等。
2. 遍历对象
2.1 for in
循环
for in
专门用于遍历对象的可枚举属性,包括 prototype 原型链上的属性,因此性能会比较差。
至于可枚举属性,可以通俗理解为会出现在对象的迭代(例如:for in
循环等)中的属性。
具体来说,是在用 defineProperty()
方法为对象添加属性时, enumerable
参数配置 true
的属性。
例如:
1 | var obj = { a: 2, b: 4, c: 6 }; |
2.2 Object.keys()
和 Object.values()
Object.keys()
会返回一个新数组,包含对象的所有可枚举属性;
Object.values()
会返回一个新数组,包含对象的所有属性值;
1 | var obj = { a: 2, b: 4, c: 6 }; |
但注意,Object.keys()
方法只查找对象的自定义属性!
2.3 Object.getOwnPropertyNames()
使用 Object.getOwnPropertyNames(obj)
返回一个数组,包含对象自身的所有属性(包括不可枚举属性)
1 | var person = {name: 'xiaoming', sex: '男'} |
此时,就可以通过遍历数组的方法,拿到 key
和 value
,进而进行操作。
2.4 遍历对象方法的区别
- 标题: js-遍历数组或对象
- 作者: 6dianbiqi
- 创建于 : 2024-07-02 18:43:23
- 更新于 : 2024-07-02 18:44:03
- 链接: https://github.com/xz719/2024/07/02/js-遍历数组或对象/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论