关于数组求和
前言
工作时遇到要将数组里的元素依次求和而不是一次性将数组元素全部求和,找了很多博主,没有找到方法。现在自己想到了一个方法,如若需要可以参考
一、整体求和
1、使用reduce方法,old为初始项或者前一次计算后的返回值,now为当前元素。
var arr = [1, 2, 3, 4, 5]
let num = arr.reduce((old, now) => {
return old + now
}, 0)
console.log(num); //15
注:1.1index为当前元素索引,可不写
1.2arr为当前元素所在的数组,可不写
1.3init为初始项数值(初始项一般给0)
array.reduce((old, now, index, arr)=>{
...
}, init);
2、使用递归方法求和
let arr = [1, 2, 3, 4]
function sum(r) {
let len = r.length
if (len == 0) return 0 //当长度为零则输出0
else if (len == 1) return r[0] //当长度为1则输出第一项
else if (len > 1) return r[0] + sum(r.slice(1))
//当长度大于1时输出每次第一项相加 r[0]:为第一项, sum(r.slice(1)):为执行递归删除原先的 r[0]后现数组的r[0]
}
let num = sum(arr)
console.log(num);//10
3、使用循环求和
var arr = [1, 2, 3, 4, 5]
function sum(params) {
let sum = 0;
params.forEach(item => {
sum += item
})
return sum
}
console.log(num);
4、使用eval()求和
let arr = [1, 2, 3, 4]
function sum(r) {
return eval(r.join("+"))
}
let num = sum(arr)
console.log(num); //10
二、依次求和
var arr = [1, 2, 3, 4, 5]
function sum(params) {
let sum = 0;
params.forEach(item => {
sum += item
})
return sum
}
let num = sum(arr.slice(0, 2)) //让前两位数字相加 3
let num = sum(arr.slice(0, 3)) //让前三位数字相加 6
//若在图标中需要依次统计可使用slice(0,index) index为动态下标
console.log(num);
今天的文章关于数组求和的方法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72800.html