在javascript中更新数组对象的有效方法

问题描述 投票:0回答:1

我必须根据条件更新数组对象中的元素。目前我正在使用 forEach 并根据条件在该元素中应用计算。我想知道在没有 for 循环的情况下更新数组的最简单方法 下面是我的数组

[{index:123,total:20,family:'mobile'},
{index:321,total:40,family:'mobile'},
{index:543,total:54,family:'mobile'}]

我想用

total*2
更新上面数组中索引为'321'的元素的总数 执行逻辑后我的数组应该如下所示

[{index:123,total:20,family:'mobile'},
{index:321,total:80,family:'mobile'},
{index:543,total:54,family:'mobile'}]

我正在使用下面的代码

var selectedId = 321;
this.arrayList.forEach((element, indexval) => {
  if((element.index== selectedId){
    this.arrayList[indexval].total = element.total*2
  } 
});

这可以优化以便我不需要迭代列表

javascript arrays arraylist javascript-objects
1个回答
0
投票

你可以使用

find()
,得到你想要的元素然后改变它的总数,像这样:

const selectedId = 321;
const selectedItem = this.arrayList.find(({index}) => index === selectedId)
selectedItem.total *= 2

如果有选择,最好有一个对象,其中索引是键,其他道具是值。然后你就可以像这样访问项目:

this.map[selectedId]

© www.soinside.com 2019 - 2024. All rights reserved.