javascript - 如何用同一对象的另一个键的值更改对象的键值?
问题描述
我有一个像这样的 json 对象:
{
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"custome-array":[
{
"date1":"12/10/2019",
"date2":"12/09/2019",
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data":{
"id":"59c12dbf1d41c818272198b3",
"some_no":"9204506",
"name":"blabla"
}
},
{
"date1":"12/10/2019",
"date2":"12/09/2019",
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data":{
"id":"59c12dbf1d41c818272198b3",
"some_no":"9204506",
"name":"blabla"
}
}
]
}
我的“custome-array”是动态的
我想使用 map 函数来修改这个数据格式,以便“more_data”将只存储“name”而不是存储完整的对象。
{
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"custome-array":[
{
"date1":"12/10/2019",
"date2":"12/09/2019",
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data":"blabla"
},
{
"date1":"12/10/2019",
"date2":"12/09/2019",
"id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data":"blabla"
}
]
}
解决方案
这适用于简单的forEach循环。您可以使用回调改变原始数组forEach's
。
let data = {
"id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"custome-array": [{
"date1": "12/10/2019",
"date2": "12/09/2019",
"id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data": {
"id": "59c12dbf1d41c818272198b3",
"some_no": "9204506",
"name": "blabla"
}
},
{
"date1": "12/10/2019",
"date2": "12/09/2019",
"id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
"more_data": {
"id": "59c12dbf1d41c818272198b3",
"some_no": "9204506",
"name": "blabla"
}
}
]
}
data["custome-array"].forEach(ele => {
ele["more_data"] = ele["more_data"].name;
})
console.log(data)
推荐阅读
- reactjs - 如何停止使用钩子销毁/卸载组件?
- angular - Swiper 幻灯片未在 ionic 5.7 中显示
- firebase - 如何从android studio中的firestore检索数据
- c++ - arm64 debian 上的 gcc-8 是否忽略友元运算符
我想比较两组对象。对于相同的代码,我在不同的机器上得到 2 个不同的输出。代码是用两个不同的编译器编译的。在x86-64机器上我使用gcc-11,在aarch64 ( raspberry pi4 ) 机器上我使用gcc-8。我必须在
- python - 如何以自定义格式化方式 python 获取类的输出?(NGROK 隧道名称)
- python - 如何使用无服务器框架从 Lambda 使用 Huggingface 深度学习容器进行推理
- swiftui - PresentationMode 触发“在初始化之前使用的变量 X”
- microsoft-graph-api - Microsoft Graph API UnableToDeserializePostBody 错误
- nestjs - 如何从 typeorm 中获取不同的值找到“查询”
- python - 自定义 hv.Arrow Holoviews 注释