forEach,map ,filter,every,some,reduce区别与对比
//声明数组
var arr = [
{
"id":"1",
"name":"川菜"},
{
"id":"2",
"name":"鲁菜"},
{
"id":"3",
"name":"粤菜"}];
//forEach让数组中的每一项做一件事
arr.forEach(function(item,index){
item.type = index;
});
console.log(arr); //增加一个属性
//map 让数组通过每种计算产生一个新数组
var newArr = arr.map(function(item,index){
return item.id*2;
});
console.log(newArr); //[2, 4, 6]
//filter 筛选出数组中符合条件的项,组成新数组
var newArr = arr.filter(function(item,index){
return item.id > 1;
})
console.log(newArr); //过滤符合规则的对象组成数组
//every 检测数组中某一项是否符合条件 boolean
var result = arr.every(function(item,index){
return item.id >1;
});
console.log(result); //false
//some 检测数组中是否包含某些想符合条件 boolean
var result = arr.some(function(item,index){
return item.id == 3;
})
console.log(result); //true
//reduce 让数组中的前项和后项做某种计算,并累计最终值(不支持对象计算)
var numberArr = [1,20,30];
var result = numberArr.reduce(function(prev,next){
return prev+next;
})
console.log(result); //51