forEach,map ,filter,every,some,reduce區(qū)別與對比
//聲明數(shù)組
var arr = [
{
"id":"1",
"name":"川菜"},
{
"id":"2",
"name":"魯菜"},
{
"id":"3",
"name":"粵菜"}];
//forEach讓數(shù)組中的每一項做一件事
arr.forEach(function(item,index){
item.type = index;
});
console.log(arr); //增加一個屬性
//map 讓數(shù)組通過每種計算產(chǎn)生一個新數(shù)組
var newArr = arr.map(function(item,index){
return item.id*2;
});
console.log(newArr); //[2, 4, 6]
//filter 篩選出數(shù)組中符合條件的項,組成新數(shù)組
var newArr = arr.filter(function(item,index){
return item.id > 1;
})
console.log(newArr); //過濾符合規(guī)則的對象組成數(shù)組
//every 檢測數(shù)組中某一項是否符合條件 boolean
var result = arr.every(function(item,index){
return item.id >1;
});
console.log(result); //false
//some 檢測數(shù)組中是否包含某些想符合條件 boolean
var result = arr.some(function(item,index){
return item.id == 3;
})
console.log(result); //true
//reduce 讓數(shù)組中的前項和后項做某種計算,并累計最終值(不支持對象計算)
var numberArr = [1,20,30];
var result = numberArr.reduce(function(prev,next){
return prev+next;
})
console.log(result); //51