JS中如何遍历数组以及对象

数组遍历

1.普通的for循环

for(var i = 0; i < arr.length; i++) {
   
}

2.改良的for循环

for(var i = 0,len=arr.length; i < len; i++) {
   
}

ps:比普通版的for循环好在使用临时变量缓存了长度,避免了重复获取数组的长度,提升了运行效率。当数组较大时能明显体现出效果。

3.forEach循环

arr.forEach(function(e){  
   
});

ps:数组本身自带的方法,性能相对普通for循环稍低。

4.forEach变种

Array.prototype.forEach.call(arr,function(el){  

});

ps:由于forEach是数组本身自带的方法,所以对于其他一些类型而言,是无法使用的(如NodeList)。性能较之普通forEach更低。

5.for in 循环

for(var i in arr) {

}

ps:在普通循环遍历中,性能最低。

6.map遍历

arr.map(function(n){  

});

ps:性能比普通forEach低。

7.for of 遍历(ES6语法)

for(let value of arr) {  

});

ps:性能比for in 稍好,但仍不如普通for 循环。

对象遍历

1.使用Object.keys()遍历

Object.keys(obj).forEach(function(key){
	//代码
});

ps:返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).

2.for in 遍历

for(var i in obj) {
	
}

ps:循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).

3.使用Object.getOwnPropertyNames(obj)遍历

Object.getOwnPropertyNames(obj).forEach(function(key){

});

ps:返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).

4.使用Reflect.ownKeys(obj)遍历

Reflect.ownKeys(obj).forEach(function(key){

});

ps:返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值