Javascript 如何使用 reduce 从嵌套对象中获取属性值的总和?

我有一个如下所示的对象:


data_sample = {

  "object_1": {

    "irrelevant_data1": 0,

    "irrelevant_data2": 0,

    "data_needed_to_sum_up": 100,

  },

  "object_a": {

    "irrelevant_data1": 0,

    "irrelevant_data2": 0,

    "irrelevant_data3": 0,

    "data_needed_to_sum_up": 200,

  },

  "object_d": {

    "irrelevant_data1": 0,

    "irrelevant_data2": 0,

    "data_needed_to_sum_up": 300,

  },

}

我如何使用该reduce方法获取sumall data_needed_to_sum_upinsidedata_sample以获得预期结果 600?


慕森卡
浏览 195回答 5
5回答

慕婉清6462132

你可以使用Object.values然后使用reducedata_sample = { "object_1": { "irrelevant_data1": 0, "irrelevant_data2": 0, "data_needed_to_sum_up": 100, }, "object_a": { "irrelevant_data1": 0, "irrelevant_data2": 0, "irrelevant_data3": 0, "data_needed_to_sum_up": 200, }, "object_d": { "irrelevant_data1": 0, "irrelevant_data2": 0, "data_needed_to_sum_up": 300, }, }res = Object.values(data_sample)    .reduce((acc,curr) => acc = acc + curr["data_needed_to_sum_up"],0)console.log(res)

一只名叫tom的猫

你可以Array#reduce在Object.values.let sum = Object.values(data_sample)          .reduce((acc,cur)=>acc+cur.data_needed_to_sum_up,0);

慕森王

.reduce适用于数组,您拥有的只是一个对象,但您可以.reduce与 结合使用Object.entries,如下所示:data_sample = {  "object_1": {    "irrelevant_data1": 0,    "irrelevant_data2": 0,    "data_needed_to_sum_up": 100,  },  "object_a": {    "irrelevant_data1": 0,    "irrelevant_data2": 0,    "irrelevant_data3": 0,    "data_needed_to_sum_up": 200,  },  "object_d": {    "irrelevant_data1": 0,    "irrelevant_data2": 0,    "data_needed_to_sum_up": 300,  },}console.log(Object.entries(data_sample).reduce((carry, [_, current]) => carry + current.data_needed_to_sum_up, 0))

蓝山帝景

尝试这个:console.log(Object.values(data_sample).map((x) => x.data_needed_to_sum_up).reduce((x, y) => x + y));

慕村225694

先使用 Object.valuesto 然后使用 reduce
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript