1.reduce 求数组中数值之和
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((x, y) => x + y)
console.log(sum);
2.reduce 统计数组中相同项出现的次数,用对象方式表达出来
let names = ["Booy", "Jiexi", "Tio", "Kori", "Jiexi"];
let obj = names.reduce((pre, cur, curIndex) => {
if (cur in pre) {
pre[cur]++;
} else {
pre[cur] = 1;
}
return pre
}, {})
console.log(obj);
3.reduce 数组去重
let num = [2, 5, 3, 6, 2, 3, 9, 3];
let newArr = num.reduce((pre, cur) => {
if (pre.includes(cur)) {
return pre;
} else {
return pre.concat(cur)
}
}, [])
console.log(newArr);
4.reduce 将多维数组 转换为 一维数组
let arr1 = [1, [2, 3], [4, 5, 6]];
let newArr1 = arr1.reduce((pre, cur) => {
return pre.concat(cur);
}, [])
console.log(newArr1);
let arr2 = [1, [2, [3, 4]], [5, [6, [7]]]];
let newArr2 = function (arr) {
return arr.reduce((pre, cur) => {
return pre.concat(Array.isArray(cur) ? newArr2(cur) : cur)
}, [])
}
console.log(newArr2(arr2));
5.reduce 将数组中的对象里的属性求和
let result = [
{
subject: "math",
score: 10
},
{
subject: "chinese",
score: 20
},
{
subject: "english",
score: 30
}
]
let sum1 = result.reduce((pre, cur) => {
return pre + cur.score
}, 0)
console.log(sum1);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步