如標(biāo)題所說這幾個方法是操作數(shù)組最常用的幾個方法。它們有怎樣的區(qū)別呢?
map(callback)返回一個新的數(shù)組。為每個元素執(zhí)行callback方法
let arr = [1,2,3,4];
let newArr = arr.map((item,index)=>{return item*2}); //callback要有return
console.log(newArr);? // [2,4,6,8]
1
2
3
filter(callback)返回符合callback函數(shù)的元素數(shù)組
let arr = [1,2,3,4];
let newArr = arr.filter((item,index)=>{return item>2});//callback中要有return
console.log(newArr);? //? [3,4]
1
2
3
some(callback)返回Boolean 判斷數(shù)組中是否有滿足callback函數(shù)的元素(一旦有符合的元素立即返回true,所以可能不會遍歷每一個元素)
let arr = [1,2,3,4];
let res = arr.some((item,index)=>{
? ? console.log(item);? ? //? 1,2,3
? ? return? item>2
})
console.log(res);? //true
1
2
3
4
5
6
every(callback)返回Boolean 判斷數(shù)組中每一個元素是否滿足callback函數(shù)(只有所有的元素都滿足時才返回true,只要有不滿足的元素就立即終止遍歷并返回false)
let arr = [1,2,3,4]
let res = arr.every((item,index)=>{
? ? console.log(item);? // 1
? ? return item>2
});?
console.log(res)? //false
1
2
3
4
5
6
forEach(callback)沒有返回值 為每個元素執(zhí)行callback(不支持break、continue跳出循環(huán))
let arr = [1,2,3,4]
let res = arr.forEach((item,index)=>{
? ? return item*2
? ? // item*2 && break;? 報錯
})
console.log(res);? //undefined