如何计算JSON数组中值的总和?示例代码求解
计算JSON数组中值的总和解决方案
嘿,我来帮你搞定这个求和问题!你的数组里每个元素都是仅包含单个键值对的对象,咱们可以用几种简单直观的方法来算出总和:
方法1:使用forEach循环累加
这是最容易理解的方式,先初始化一个总和变量,然后遍历数组里的每个对象,提取值并累加:
var taxes = [ {"1": 11}, {"2": 33} ]; let total = 0; taxes.forEach(item => { // 用Object.values()取出对象的值,因为每个对象只有一个值,直接取索引0 total += Object.values(item)[0]; }); console.log(total); // 输出 44
方法2:使用reduce方法(更简洁)
reduce是数组处理里很实用的方法,可以直接一步算出总和,代码更紧凑:
var taxes = [ {"1": 11}, {"2": 33} ]; const total = taxes.reduce((sum, currentItem) => { // 提取当前对象的值并加到累计总和里 return sum + Object.values(currentItem)[0]; }, 0); // 0是初始的总和值 console.log(total); // 输出 44
拓展:如果对象有多个键值对怎么办?
要是你的数组对象里可能包含多个数值需要累加,也可以嵌套reduce来处理:
var taxes = [ {"1": 11, "extra": 5}, {"2": 33} ]; const total = taxes.reduce((totalSum, item) => { // 先把当前对象的所有值加起来,再加到总总和里 const itemSum = Object.values(item).reduce((acc, val) => acc + val, 0); return totalSum + itemSum; }, 0); console.log(total); // 输出 11+5+33=49
核心思路就是用Object.values()把对象里的数值提取成数组,再通过循环或者reduce来完成累加操作,完全适配你的需求~
内容的提问来源于stack exchange,提问作者Hemant
相关产品推荐
相关产品推荐

