javaScript Array数组对象map/reduce/reduceRight
map:将对应数组的每个内容做特定的处理,处理内容为传入函数的处理逻辑
let arr = [5, 6, 7, 8, 1, 2, 3];
let result = arr.map(item => {
return item * 2;
});
console.log(result);
let arr1 = [
{
name: 'zg',
age: 18
},
{
name: 'kobe',
age: 35
},
{
name: 'lucy',
age: 22
},
];
result = arr1.map(item => {
return {
name: item.name + " haha",
age: item.age + 100
};
});
console.log(result);
reduce:将数组累计依次处理,通常用于累加,传入的函数中,会带上前面一个返回值以及本次的值
let arr = [5, 6, 7, 8, 1, 2, 3];
let result = arr.reduce((preValue, currentValue) => {
return preValue + currentValue;
});
console.log(result);
result = arr.reduce((preValue, currentValue) => {
return preValue - currentValue;
});
console.log(result);
let arr1 = [
{
name: 'zg',
age: 18
},
{
name: 'kobe',
age: 35
},
{
name: 'lucy',
age: 22
},
];
result = arr1.reduce((preValue, currentValue) => {
return {
name: preValue.name + currentValue.name,
age: preValue.age + currentValue.age
};
});
console.log(result);
reduceRight:从数组尾部开始向前依次累计,与reduce的方向相反
let arr = [5, 6, 7, 8, 1, 2, 3];
let result = arr.reduce((preValue, currentValue) => {
return preValue + currentValue;
});
console.log(result);
result = arr.reduce((preValue, currentValue) => {
return preValue - currentValue;
});
console.log(result);
let arr1 = [
{
name: 'zg',
age: 18
},
{
name: 'kobe',
age: 35
},
{
name: 'lucy',
age: 22
},
];
result = arr1.reduce((preValue, currentValue) => {
return {
name: preValue.name + currentValue.name,
age: preValue.age + currentValue.age
};
});
console.log(result);