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