gpt4 book ai didi

javascript - 在 React 中更新数组中的元素(使用过滤器/ map )

转载 作者:行者123 更新时间:2023-11-30 09:12:04 25 4
gpt4 key购买 nike

我有一个结构如下的数组:

this.state.mainArray= [{
"Upperelement1": "12345",
"Upperelement2" : [
{
Key1:'ok1',Key2:'ok2',Key3:'ok3'
},
{
Key1:'ok4',Key2:'ok6',Key3:'ok7'
},
]
},
{
"Upperelement1": "6789",
"Upperelement2" : [
{
Key1:'ok8',Key2:'ok9',Key3:'o10'
},
{
Key1:'ok11',Key2:'ok12',Key3:'ok13'
},
]
}
]

想法是遍历数组并找到 Upperelement1 = 12345Key1:'ok1' 的元素(键的值是唯一的)并向 Upperelement2 添加另一个键,key4。更新后,数组将如下所示:

  [{
"Upperelement1": "12345",
"Upperelement2" : [
{

Key1:'ok1',Key2:'ok2',Key3:'ok3',Key4:'somevalue'
},
{
Key1:'ok4',Key2:'ok6',Key3:'ok7'
},
]
},
{
"Upperelement1": "6789",
"Upperelement2" : [
{
Key1:'ok8',Key2:'ok9',Key3:'o10'
},
{
Key1:'ok11',Key2:'ok12',Key3:'ok13'
},
]
}
]

我试过类似的方法:

mainArray.map(items => if (items. Upperelement1 == '12345')
  • 但这行不通,有什么想法可以实现吗?我们可以使用过滤器吗?

最佳答案

您可以使用 find() , some() , 和 map()这样做。

var data = [{ Upperelement1: "12345", Upperelement2: [{ Key1: "ok1", Key2: "ok2", Key3: "ok3" }, { Key1: "ok4", Key2: "ok6", Key3: "ok7" }, ] }, { Upperelement1: "6789", Upperelement2: [{ Key1: "ok8", Key2: "ok9", Key3: "o10" }, { Key1: "ok11", Key2: "ok12", Key3: "ok13" }, ] } ]; 

data.find(item =>
item.Upperelement1 === "12345" &&
item.Upperelement2.some(value => value.Key1 === "ok1")
)
.Upperelement2.map(item => {
if (item.Key1 === "ok1") {
item["Key4"] = "somevalue";
}
return item;
});

console.log(data);

关于javascript - 在 React 中更新数组中的元素(使用过滤器/ map ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57882959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com