1.map和forEach
let originalArr=[1,2,3,4,5,6,7,8,9,10];
console.log('------------map---------------');
let arrMap= originalArr.map(item=>{
return item*2;
})
console.log('original',originalArr);
console.log('result',arrMap);
console.log('------------forEach---------------');
let arrForEach=originalArr.forEach(item=>{
return item*2;
})
console.log('original',originalArr);
console.log('result',arrForEach);
结果:map和forEach都不改变原数组,map返回一个新数组,forEach没有返回值
2.some和every及filter
let originalArr=[1,2,3,4,5,6,7,8,9,10];
console.log('------------filter---------------');
let arrFilter= originalArr.filter(item=>{
return item>2;
});
console.log('original',originalArr);
console.log('result',arrFilter);
console.log('------------some---------------');
let arrSome=originalArr.some(item=>{
return item>2;
})
console.log('original',originalArr);
console.log('result',arrSome);
console.log('------------every---------------');
let arrEvery=originalArr.every(item=>{
return item>2;
})
console.log('original',originalArr);
console.log('result',arrEvery);
结果:三者都不改变原数组,filter返回满足条件的新数组,some和every返回bool值,some只要y有满足条件的项就返回True,every要全部满足判定条件才会返回true
验证是否可以中断循环
let originalArr=[1,2,3];
console.log('------------filter---------------');
let arrFilter= originalArr.filter((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
});
console.log('original',originalArr);
console.log('result',arrFilter);
console.log('------------some---------------');
let arrSome=originalArr.some((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
})
console.log('original',originalArr);
console.log('result',arrSome);
console.log('------------every---------------');
let arrEvery=originalArr.every((item,index)=>{
console.log(item);
if(index==1){
return false;
}
return true;
})
console.log('original',originalArr);
console.log('result',arrEvery);
经过以上测试得知
1.所有遍历方法都不会影响原数组
2.map和filter会返回一个新的数组
3.forEach没有返回值
4.some和every返回bool值且能提前中断循环