Javascript 如何在forEach循环中更改数组中的json?JS

Javascript 如何在forEach循环中更改数组中的json?JS,javascript,Javascript,我需要更改JSON 我的JSON数组示例: { //…有什么财产吗 要点:[ 地点:{ 纬度:0, 经度:0 }, 名称:“点1”, pointId:1 ] } 我在数组中循环: data.points.forEach((formData:IAddress)=>{ control.push(this.initiateForm(formData)); }); 得到的结果是: { 地点:{ 纬度:0, 经度:0 }, 名称:“点1”, pointId:1 } 预期的结果是: { 纬度:0, 经

我需要更改JSON

我的JSON数组示例:

{
//…有什么财产吗
要点:[
地点:{
纬度:0,
经度:0
},
名称:“点1”,
pointId:1
]
}
我在数组中循环:

data.points.forEach((formData:IAddress)=>{
control.push(this.initiateForm(formData));
});
得到的结果是:

{
地点:{
纬度:0,
经度:0
},
名称:“点1”,
pointId:1
}
预期的结果是:

{
纬度:0,
经度:0
名称:“点1”,
pointId:1
}

只需删除位置JSON,就像从该位置弹出经度和纬度一样。

您可以使用
Array.map
,并且:

const-original={
//…有什么财产吗
//这里,我假设'points'是一个对象数组,而不是一个bug数组/对象
要点:[
{
地点:{
纬度:0,
经度:0
},
名称:“点1”,
pointId:1
}
]
};
常量结果=原始点
.map({location,…rest})=>({
休息
地方
}))

您可以使用
对象。条目
对象。fromEntries
和排列(
)操作符执行一些操作:

const points=[{
地点:{
纬度:0,
经度:0
},
名称:“点1”,
pointId:1
}];
const result=points.map(p=>{
返回{
…Object.fromEntries(Object.entries(p).filter(e=>e[0]!=“location”),
…p.位置
};
});
console.log(结果)
对象展平 你们想要一些类似于展平的东西,但在对象上,所以我很快就做了一些代码

不指定键(使用typeof),但仅指定一个级别对象

const arr=[
{
“地点”:{
“纬度”:0,
“经度”:0
},
“名称”:“第1点”,
“pointId”:1,
“外部对象”:{
“一”:“价值1”,
“二”:“价值二”
}
},
{
“地点”:{
“纬度”:0,
“经度”:0
},
“名称”:“第1点”,
“点ID”:1
}
]
const newArr=arr.map(项=>{
返回对象。键(项)。减少((acc,键)=>{
if(项的类型[键]=“对象”){
acc={…acc,…项[键]};
}否则{
acc[键]=项目[键];
}
返回acc;
}, {})
})

控制台日志(newArr)那不是,那些是objectsOk对象。。结果很重要:)这是什么。initiateForm函数的语法错误。你不能有不存在的
[prop:{}]
。“结果很重要:)”-重要的是理解你使用的东西。这是一个错误,属性“fromEntries”在类型“ObjectConstructor”上不存在。ts(2339)@MichaelTomas
对象。fromEntries
是标准javascript: