首页 > 解决方案 > 如何更新数组内列表中的项目?

问题描述

鉴于每个“totalLiabilities”的数据结构,我需要计算(“totalAssets”-“shareholderEquity”)。在javascript中会如何。非常感激。

{
    "symbol": "FB",
    "financials": [
        {
            "reportDate": "2017-12-31",
            "totalAssets": 84524000000,
            "totalLiabilities": null,
            "shareholderEquity": 74347000000,
        },
        {
            "reportDate": "2016-12-31",
            "totalAssets": 64961000000,
            "totalLiabilities": null,
            "shareholderEquity": 59194000000,
        },
        {
            "reportDate": "2015-12-31",
            "totalAssets": 49407000000,
            "totalLiabilities": null,
            "shareholderEquity": 44218000000,
        },
        {
            "reportDate": "2014-12-31",
            "totalAssets": 39966000000,
            "totalLiabilities": null,
            "shareholderEquity": 36096000000,
        }
    ]
}

标签: javascriptarrayslist

解决方案


您可以使用箭头函数来遍历集合中的项目并执行分配。

var data = {
  "symbol": "FB",
  "financials": [{
      "reportDate": "2017-12-31",
      "totalAssets": 84524000000,
      "totalLiabilities": null,
      "shareholderEquity": 74347000000,
    },
    {
      "reportDate": "2016-12-31",
      "totalAssets": 64961000000,
      "totalLiabilities": null,
      "shareholderEquity": 59194000000,
    },
    {
      "reportDate": "2015-12-31",
      "totalAssets": 49407000000,
      "totalLiabilities": null,
      "shareholderEquity": 44218000000,
    },
    {
      "reportDate": "2014-12-31",
      "totalAssets": 39966000000,
      "totalLiabilities": null,
      "shareholderEquity": 36096000000,
    }
  ]
};

data.financials.forEach(item => item.totalLiabilities = item.totalAssets - item.shareholderEquity);

console.log('Updated: ' + JSON.stringify(data));


推荐阅读