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

学习者

我有一个对象数组,我想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}
]

我正在更新使用的值loops并且它也在工作,但是有没有最好的方法来解决这个问题?

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)

迈克尔·华纳

我假设您是编程新手,并且我还假设您可以完全控制数据结构,因此如果您已经知道这一点,我深表歉意。

有一个概念叫做数据完整性对此有一些规则,但对于初学者来说,最重要的是要理解数据的含义。在这种情况下,您是否完整或更改了数据,或者您只是从中读取数据?

对于总计,您不直接与其交互,它应该是对其他值的计算,而更改它的唯一方法是更改​​其他值。

在 JavaScript 中,有一个Getter来解决这个问题。

看起来像这样。

const obj = {
  value: 3,
  get doubleValue () {
    return this.value * 2
  }
}
obj.doubleValue // 6

在你的情况下,你可以有这样的事情。

{
  get Total () {
    return ...calculation
  }
}

这是一个工作示例

{
  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,
  get Total () {
    const keys = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    let sum = 0;
    keys.forEach((key) => {
      sum += this[key]
    })
    return sum
  }
}

因此,如果您更改任何值,则调用 Total 它将自动更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我想用react useState()添加数组的用户输入对象,在发送它时它不会更新问题吗?

来自分类Dev

在angular js中向对象添加数组属性

来自分类Dev

如何添加数组?

来自分类Dev

如何添加数组

来自分类Dev

如何对象添加数组的索引值的关键

来自分类Dev

如何动态地向对象添加数组?

来自分类Dev

如何在Angular 2中的对象内添加数组?

来自分类Dev

如何在JavaScript中更新/添加数组的元素?

来自分类Dev

向数组内的对象添加数组

来自分类Dev

使用ClassModule属性添加数组键

来自分类Dev

向Javascript对象添加数组

来自分类Dev

在对象数组中添加数据

来自分类Dev

如何从数组向PowerShell对象添加属性

来自分类Dev

如何更新数组中特定对象的属性

来自分类Dev

如何从具有内部数组的对象数组添加数据到另一个对象数组?javascript

来自分类Dev

更新数组对象的属性

来自分类Dev

重复 - 如何更新订阅添加数量?

来自分类Dev

如何在Ruby中添加数组?

来自分类Dev

如何添加数组列表(张量)

来自分类Dev

如何快速添加数组元素?

来自分类Dev

如何动态添加数组的值

来自分类Dev

如何使用 Python 添加数组

来自分类Dev

如何在Google Cloud Datastore中添加数组属性值

来自分类Dev

我如何在类图UML中添加数组属性

来自分类Dev

我如何在类图UML中添加数组属性

来自分类Dev

如何使用javascript从数据属性和ID添加数组并将其组合到数组php中?

来自分类Dev

合并和添加数组中对象的值

来自分类Dev

在对象 Angular 2 内添加数组

来自分类Dev

添加数组?