Javascript 数组还原方法
最编程
2024-03-15 20:27:19
...
语法
- arr.reduce( callback, initialValue )
简介
reduce 为数组中的每一个元素依次执行回调函数,接受四个参数:初始值(或者上一次回调函数的返回值)、当前元素值、当前索引、调用 reduce 的数组。
注意: reduce对于空数组是不会执行回调函数的。
callback 的参数:
1.previousValue (上一次回调返回的值,或者是提供的初始值)
2.currentValue (数组中当前被处理的元素)
3.index (当前元素在数组中的索引)
4.array (调用 reduce 的数组)
initialValue 参数
let arr = [1, 2, 3, 4];
let sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
})
console.log(arr, sum);
输出的结果为:
1 2 1
3 3 2
6 4 3
[1,2,3,4] 10
- 如果 reduce() 方法不提供 initialValue 初始值,则元素索引是从1(数组的第二个元素)开始,初始值为数组的第一个元素
let arr = [1, 2, 3, 4];
let sum = arr.reduce(function(prev, cur, index, arr) {
console.log(prev, cur, index);
return prev + cur;
},0)
console.log(arr, sum);
输出的结果为:
0 1 0
1 2 1
3 3 2
6 4 3
[1,2,3,4] 10
- 如果 reduce() 方法提供 initialValue 初始值,则元素索引是从0(数组的第一个元素)开始,初始值为提供的值
空数组
-
对于空数组如果不提供 initialValue 初始值,则会报错
TypeError: Reduce of empty array with no initial value
-
对于空数组如果提供 initialValue 初始值,则不会报错
用法
- 求和
let arr = [1, 2, 3, 4];
console.log(arr.reduce((x,y)=>x+y)); // 10
- 求乘积
let arr = [1, 2, 3, 4];
console.log(arr.reduce((x,y)=>x*y)); // 24
- 计算数组中每个元素出现的次数
let arr = [1,2,3,4,5,6,7,1,2,4];
写法一:
let arrcount = arr.reduce((pre,cur)=>{
if(cur in pre){
pre[cur]++
}else{
pre[cur] = 1;
}
return pre
},{})
console.log(arrcount);
写法二:
let arrcount = arr.reduce((pre,cur)=>(pre[cur]++ || (pre[cur] = 1),pre),{})
console.log(arrcount);
- 数组去重
let arr = [1,2,3,4,5,6,7,1,2,4];
let newarr = arr.reduce((pre,cur)=>{
if(!pre.includes(cur)){
return pre.concat(cur)
}else{
return pre
}
},[])
console.log(newarr)
- 将二维数组转化为一维数组
let arr = [[0, 1], [2, 3], [4, 5]]
let newArr = arr.reduce((pre,cur)=>{
return pre.concat(cur)
},[])
console.log(newArr);
- 对象属性求和
let result = [
{
subject: 'math',
score: 10
},
{
subject: 'chinese',
score: 20
},
{
subject: 'english',
score: 30
}
];
let sum = result.reduce(function(prev, cur) {
return cur.score + prev;
}, 0);
console.log(sum)
原文地址:https://www.cnblogs.com/aloneer/p/14500824.html
上一篇: JS 阵列还原法细节和高级技术
下一篇: JS 阵列还原法细节和高级技术
推荐阅读
-
JavaScript 中删除数组元素的七种方法汇总
-
解决 iPhone 8 白色苹果界面卡死问题,让你学会 2 种还原系统的方法!
-
请问在 JavaScript EN 中将字节大小转换为 KB、MB、GB 的正确方法。
-
Javascript]移除问卷星以禁用选中文本复制和右键菜单方法
-
JavaScript 实现自动填写和提交问卷的方法
-
向过去学习的 JavaScript - 绑定方法的实现
-
JavaScript toPrecision 方法
-
javascript 连接 将数组中的所有元素连接成字符串 - javascript 连接语法
-
javascript 前端 XML 格式正确性验证方法
-
将汉字转换为拼音和缩写的 JavaScript 方法示例