【发布时间】:2021-09-29 09:48:39
【问题描述】:
如何在javascript中通过数组值改变嵌套数组对象。
我有数组对象nestobj和数组arr,如果位置和数组匹配,则替换javascript中的值。
我需要知道如何用相同的变量名更改数组对象nestobj
var nestobj =[
{id:1, name: "xyz", place: "CH"},
{id:2, name: "zen", place: "JP"},
{id:3, name: "abc", place: "TH"},
{id:4, name: "ram", place: "MY"},
{id:5, name: "mike", place: "AU"},
]
var arr=[
"JP:Japan",
"CH:Chennai",
"AU:Australia"
]
Expected Ouput
[
{id:1, name: "xyz", place: "Chennai"},
{id:2, name: "zen", place: "Japan"},
{id:3, name: "abc", place: "TH"},
{id:4, name: "ram", place: "MY"},
{id:5, name: "mike", place: "Australia"},
]
arr.map(ii=>{
var kv = ii.split(':');
nestobj.map(e=>{
if(e.place === kv[0]){
return {
...e,
place: kv[1]
}
else{
...e,
place: e.place
}
}
})
})
console.log(nestobj)
【问题讨论】:
-
The map() method creates a new array populated with the results of calling a provided function on every element in the calling array。这意味着您需要
arr = arr.map(...和/或nestobj = nestobj.map(...因为 map 不会替换其迭代的数组上的值。
标签: javascript arrays loops object