js 有关数组的遍历问题

1.0 forEach-----------可以遍历得到vaue和index

const arr = ['a','b','c'];
arr.forEach((item,index)=>{
console.log(item);//a,b,c
console.log(index)//0,1,2
})
2.0 forEach 处理不能直接用 变量接收 (map可以直接接收),返回undefined.
const arr = ['a','b','c',{ww:1},];
let arr1 = arr.forEach((item,index)=>{
if(item.ww){
item.ww = 2;
}
return item
})
console.log(arr1)//undefined
2.1 正确的接收方式是
arr.forEach((item,index)=>{
if(item.ww){
item.ww = 2;
}
return item
})
let some = arr;
console.log(some)//
3 for...of-----------可直接拿到某条item对象

4 for...in---------只能获得对象的键名,不能直接拿到键值
for(let a of arr){
console.log(a)
}
for(let a in arr){
console.log(a)
}

5.0 

 普通的for循环
 
const arr =['a', 'b', 'c', 'd'];
 
for(let i=0;i<arr.length;i++)
{
  console.log(arr[i]); // a b c d
}
6.0 

Map--------处理集合列表,

let arr1 = arr.map((item,index)=>{
if(item.ww){
item.ww=2
}
return item
})
console.log(arr1)//['a','b','c',{ww:2},]
7.0 map,foreach无法终止循环, 可以用every 替代处理
const arr = ['a','b',{ww:1},'c',];
arr.every((item,index)=>{
console.log(index)//0,1,2
if(item.ww){
return false
}
return item
})
8.0 filter
const arr = ['a','b',{ww:1},'c',];
let netList = arr.filter((item)=> item.ww !=1)
console.log(netList)//["a", "b", "c"]
 
 

 

posted @ 2019-01-11 11:04  lieaiwen  阅读(365)  评论(0编辑  收藏  举报