javascript - 如何添加数组的对象属性并更新它?

标签 javascript arrays

我有一个对象数组,我想通过添加月份来更新Total

var arrObj=[
  {name:"ABC",Jan:0,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
    {name:"BCD",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
   {name:"DEF",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
   {name:"FGH",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0}
]

我正在使用循环更新值,它也可以工作,但是有没有最好的方法来实现这个?

var len=arrObj.length;
var Total=0;
for(var i=0;i<len;i++){
arrObj[i].Total= +arrObj[i].Jan + +arrObj[i].Feb + +arrObj[i].Mar+ +arrObj[i].Apr+ +arrObj[i].May+ +arrObj[i].Jun+ +arrObj[i].Jul+ +arrObj[i].Aug+ +arrObj[i].Sep+ +arrObj[i].Oct+ +arrObj[i].Nov+ +arrObj[i].Dec;
}
console.log(arrObj)

var arrObj=[
  {name:"ABC",Jan:0,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
    {name:"BCD",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
   {name:"DEF",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0},
   {name:"FGH",Jan:10,Feb:20,Mar:30,Apr:40,May:50,Jun:70,Jul:80,Aug:90,Sep:100,Oct:110,Nov:120,Dec:130,Total:0}
]
var len=arrObj.length;
var Total=0;
for(var i=0;i<len;i++){
arrObj[i].Total= +arrObj[i].Jan + +arrObj[i].Feb + +arrObj[i].Mar+ +arrObj[i].Apr+ +arrObj[i].May+ +arrObj[i].Jun+ +arrObj[i].Jul+ +arrObj[i].Aug+ +arrObj[i].Sep+ +arrObj[i].Oct+ +arrObj[i].Nov+ +arrObj[i].Dec;
}
console.log(arrObj)

最佳答案

您可以定义一个函数来获取每个对象的总计

const getTotal = obj => {
    let total = 0;
    const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
    months.forEach(month => total += obj[month]);
    return total;
}

然后像这样使用它

arrObj.forEach(obj => obj.total = getTotal(obj));

关于javascript - 如何添加数组的对象属性并更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58081116/

相关文章:

javascript - Jquery 选择按名称或 ID 删除属性

javascript - ReactJS + 终极版 : How to structure action creators down to each component?

javascript - 如何在网站上播放 AVI 视频?

java - 在三维空间中找到彼此最近的两个点

javascript - 如何将 JavaScript array() 转换为 ATL/COM 数组?

javascript - jqGrid 添加新列

javascript - 需要帮助了解 OAuth2 工作流程和选择授权类型

java - 按列填充二维数组java

android - 我正在创建一个类似Uber的应用程序,但它突然崩溃,并出现预期的BEGIN_ARRAY错误,但在第1行第1列路径$ STRING

javascript - JavaScript 中奇怪的数组行为