JavaScript:计算数组中对象的taxprice值总和
计算数组中taxprice的总和
嘿,先帮你修正一下数据里的语法问题——原数组里的对象之间少了逗号,这会导致JavaScript报错,修正后的合法数组如下:
var data = [ { 'name': 'ragu', 'taxprice': '20' }, { 'name': 'ram', 'taxprice': '20' }, { 'name': 'sandy', 'taxprice': '20' }, { 'name': 'ramu', 'taxprice': '20' } ];
接下来给你两种简单的方法计算所有taxprice的总和,都能得到你想要的subtotal = 80:
方法一:使用reduce(推荐,简洁高效)
reduce是数组的高阶方法,专门用来累加或合并数组元素,非常适合这种求和场景:
const subtotal = data.reduce((accumulator, currentItem) => { // 把字符串类型的taxprice转成数字,再累加到总和里 return accumulator + Number(currentItem.taxprice); }, 0); // 0是初始累加值 console.log(subtotal); // 输出:80
方法二:使用forEach循环(适合新手理解)
如果觉得reduce有点抽象,用forEach循环逐个累加也很直观:
let subtotal = 0; // 初始化总和为0 data.forEach(item => { // 每次循环把当前item的taxprice转成数字后加到总和里 subtotal += Number(item.taxprice); }); console.log(subtotal); // 输出:80
注意:一定要把taxprice转成数字类型(用Number()、parseInt()或者+都可以),因为原数据里的taxprice是字符串,直接相加会变成字符串拼接,得到"20202020"而不是80哦!
内容的提问来源于stack exchange,提问作者user7784271
相关产品推荐
相关产品推荐

