【问题标题】:Javascript object conversion and sum valuesJavascript 对象转换和求和值
【发布时间】:2023-02-02 23:43:13
【问题描述】:

我如何转换这个数组对象并对每个对象求和值: 在每个数组中,我需要对值求和并返回一个新对象。

const obj1 = [
  {
    "array1" : [
        {"value" : 30},
        {"value" : 30}
    ],
    "array2" : [
        {"value" : 30},
        {"value" : 20}
    ],
    "array3" : [
        {"value" : 30},
        {"value" : 40}
    ]
}
]

使用 Javascript 到这样的数组:

const obj2 = [
  {
    "key": "array1",
    "value": "60",
  },
  {
    "key": "array2",
    "value": "50",
  },
  {
    "key": "array3",
    "value": "70",
  }
]

谢谢

【问题讨论】:

标签: javascript


【解决方案1】:

您可以映射每个对象的条目,将每个数组的值与 Array#reduce 相加。

const obj1 = [
  {
    "array1" : [
        {"value" : 30},
        {"value" : 30}
    ],
    "array2" : [
        {"value" : 30},
        {"value" : 20}
    ],
    "array3" : [
        {"value" : 30},
        {"value" : 40}
    ]
}
];
let res = obj1.flatMap(x => Object.entries(x).map(([key, v]) => 
            ({key, value: "" + v.reduce((a, b) => a + b.value, 0)})));
console.log(res);

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 2020-12-29
    • 1970-01-01
    • 2022-08-18
    • 2021-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-10
    相关资源
    最近更新 更多