javascript数组数据相加(javascript数组求和的实际应用)

javascript数组数据相加(javascript数组求和的实际应用)(1)

javascript

有下面一组数据

const data = [

{ name:小明, score:90,age:10 },

{ name:小王, score:100,age:9 },

{ name:小赵, score:80,age:9 },

{ name:小强, score:97,age:8 }

]

我们现在的需求是对score和age两列进行求和计算。下面我们先对求和方法进行封装,这里我分享两种常用的方法。

方法一:采用递归的方式

export const getTotal = (data,key) => { var len = data.length; if(len == 0){ return 0; } else if (len == 1){ // 特殊情况;当其中某个值为空时默认为数字0 return Number(data[0][key]?data[0][key]:0); } else { // 特殊情况;当其中某个值为空时默认为数字0 // 递归的方式调用getTotal方法 return Number(data[0][key]?data[0][key]:0) getTotal(data.slice(1),key); } } // 调用 getTotal(data,score)或 getTotal(data,age)

方法二:函数式编程reduce

export const getTotal = (data,key) => { // 一维数组求和方法reduce return data.reduce(function(prev, curr, idx, arr){ if(typeof prev==object) { return Number(prev[key]) Number(curr[key]); }else{ return prev Number(curr[key]); } }); } // 调用 getTotal(data,score)或 getTotal(data,age)

然后我们如果要在项目中使用可以遍历age和score两个字段进行调用公共方法实现多个列求和。

如果求和之后数据需要保留小数点后两位或三位有效数字,可以根据具体情况进行相应封装,我们这里就不做一一分享了。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。