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"]