JS遍历数组和对象的方法

JS遍历数组的方法有:

  1. for
  2. forEach
  3. for…in
  4. for…of
  5. map

JS遍历对象的方法有

  1. for…in
  2. Object.keys
  3. Object.getOwnPropertyNames(obj)

JS遍历数组
1.for循环

 /* for 普通的for循环,遍历数组 */
     var arr = [1,2,3,4,5];
       for (var i =0;i < arr.length;i ++){
         console.log('for遍历',arr[i]);
       }
       /* 当数据过多时,可以将长度缓存起来,避免重复获取长度,数组很大时,优化效果明显 */
       // for(var j = 0,len = arr.length; j < len; j++){
       //     console.log(arr[j]);
       // }

2.forEach循环(ES5新增)

/* forEach 数组自带的循环,遍历数组  */
	let arr = [1,2,3,4,5,6,7] 
       arr.forEach(function(value,i){
         console.log('forEach遍历',i,value);
       })

3.for…in(不推荐遍历数组)
for…in是es5标准,此方法遍历数组的效率比较低,主要用来循环遍历对象的属性

	let arr = [1,2,3,4,5];
	for(let item in arr){
			console.log(arr[item])
		}

4.for…of(ES6新增)

let arr = [1,2,3,4,5,6];
for(let value of arr){
		console.log(value);
	}

es6新出的方法,for…of ,值得注意的是,for…of 和 for…in不一样,for…in是直接获取数组的索引,而for…of是直接获取的数组的值。
它既比传统的for循环简洁,同时弥补了forEach和for-in循环的短板。
循环遍历键值对的value,与for in遍历key相反

5.map(ES6新增)
map是映射的意思,原数组会被映射成对应的新数组

		let arr =[1,2,3,4,5,6]; 
		let newArr = arr.map( function(value,index){
   		console.log(value + '--' + index)
   		return value+1
})
console.log(arr);//1,2,3,4,5,6
console.log(newArr);//2,3,4,5,6,7

注意:从上面的代码我们可以发现,map支持return,相当于把原数组克隆了一份,把克隆的每项都改变了,也不会影响原数组;

JS遍历对象的方法有

1.for…in遍历对象(常用)

	let obj = {
		name:'西城辉',
		age:18,
		job:'student'
	}
	for (let key in obj){
		console.log(key + ':' + obj[key]);
	}

2.Object.keys 遍历对象

	let obj = {
		name:'西城辉',
		age:18,
		job:'student'
	}
	for (let key of Object.keys(obj)){//for  of 不能单独来遍历对象,要结合Object.keys一起使用
		console.log(key + ':' + obj[key]);
	}

**3.Object.getOwnPropertyNames(obj)**遍历对象

		let obj = {
		name:'西城辉',
		age:18,
		job:'student'
	}
	Object.getOwnPropertyNames(obj).forEach(function (key){
		console.log(key+ ':' +obj[key]);
	})

**返回一个数组,包含对象自身的所有属性(包含不可枚举属性) 遍历可以获取key和value **

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值