首页 > 解决方案 > 从对象数组Javascript计算2个对象键/列

问题描述

所以我正在处理一些列合并和过滤,但是我无法从对象数组中计算 2 个对象键(列),然后将结果映射到新数组的对象键

例子:

var foodRevenue = [{
    "Month": "2011-01",
    "week1_Revenue": "100.00",
    "week2_Revenue": "300.51",
    "Week3_Reenue": "200.09",
    "Month1_TotalRevenue": "0"
}];

我想计算 、 和 的总和 week1以及week2week3映射的结果Month1_TotalRevenue。然后创建一个新数组,将 Month 和 Month1_TotalRevenue 过滤到该数组。像这样:

{"Month": "2011-01", "Month1_TotalRevenue": "600.60"}

任何建议,将不胜感激

标签: javascriptarraysobjectsum

解决方案


您可以使用以下方法解构您的对象属性并总结所需的属性Array.prototype.reduce()

const  foodRevenue = {
      "Month": "2011-01",
      "week1_Revenue": "100.00",
      "week2_Revenue": "300.51",
      "Week3_Reenue": "200.09",
      "Month1_TotalRevenue": "0"
    },
    {Month, Month1_TotalRevenue, week1_Revenue,...revenue} = foodRevenue,
    result = {
      Month,
      week1_Revenue,
      Month1_TotalRevenue: 
        Object
          .values({...revenue,week1_Revenue})
          .reduce((s,r) => s+=+r, +Month1_TotalRevenue)
          .toFixed(2)
    }
    
console.log(result)


推荐阅读