- map方法:
对数组中的每一项,返回每次函数调用的结果组成的数组。
注意:
1.map方法不会改变原数组;
2.一定要自己手动返回。
// 例:将数组中每一项的age加1
let arr=[{name:'冬雨',age:18},{name:'冬梅',age:19}]
arr =arr.map(item=>{
item.age = item.age+1;
return item;
})
console.log(arr)
//=> [ { name: '冬雨', age: 19 }, { name: '冬梅', age: 20 } ]
2.filter
对数组中的每一项运行函数,返回该函数会返回true的项组成的数组。
//返回数元素中age大于18的元素组成的数组。
let arr=[{name:'冬雨',age:18},{name:'冬梅',age:19}]
arr =arr.filter(item=>{
return item.age>18;
})
console.log(arr)
//=>[ { name: '冬梅', age: 19 } ]
- forEach
对数组中的每一项云顶给定的函数,该函数无返回值。
let arr=[{name:'冬雨',age:18},{name:'冬梅',age:19}]
arr.forEach(item=>{
console.log(item);
})
// =>{ name: '冬雨', age: 18 }
// { name: '冬梅', age: 19 }
4.reduce
reduce可接受四个参数,常见的是接受两个参数的;即:前一个值,当前值,求和的例子大家都知道呢,我们来看另一个。
这里的需求就是将所有的年龄合在一个字符串中,将姓名和在一个字符串中,当前通过转换还可以转换数组形式。
let arr=[{name:'冬雨',age:18},{name:'冬梅',age:19}]
let arr2= arr.reduce((prev,cur)=>{
let obj={age:[],name:[]}
obj.age = prev.age+','+cur.age;
obj.name = prev.name+','+cur.name;
return obj;
})
console.log(arr2);
//=>{ age: '18,19', name: '冬雨,冬梅' }