angular - 如何将{}的键修改为对象Angular 8的值
问题描述
我希望重新排列键成为对象元素的一部分。
{
123: [ {geoLong: 323, geoLat:4234}, {geoLong: 325, geoLat: 3422} ],
349: [ {geoLong: 768, geoLat:456},
{geoLong: 7234, geoLat: 590},
{geoLong: 7234, geoLat: 590} ],
958: [ {geoLong: 643, geoLat:290},
{geoLong: 567, geoLat: 378}],
...
}
在我使对象变平之前成为下面的结果。
{
123: [ {geoLong: 323, geoLat:4234, id: 123},
{geoLong: 325, geoLat: 3422, id: 123} ],
349: [ {geoLong: 768, geoLat:456, id: 349},
{geoLong: 7234, geoLat: 590, id: 349},
{geoLong: 7234, geoLat: 590, id: 349} ],
958: [ {geoLong: 643, geoLat:290, id: 958},
{geoLong: 567, geoLat: 378, id: 958}],
...
}
解决方案
您可以使用Object.entries方法遍历对象。
obj = {
123: [ {geoLong: 323, geoLat:4234}, {geoLong: 325, geoLat: 3422} ],
349: [ {geoLong: 768, geoLat:456},
{geoLong: 7234, geoLat: 590},
{geoLong: 7234, geoLat: 590} ],
958: [ {geoLong: 643, geoLat:290},
{geoLong: 567, geoLat: 378}],
}
Object.entries(obj).forEach(([key, values]) => {
values.forEach(item => item.id = (+key));
})
结果:
{
"123": [
{
"geoLong": 323,
"geoLat": 4234,
"id": 123
},
{
"geoLong": 325,
"geoLat": 3422,
"id": 123
}
],
"349": [
{
"geoLong": 768,
"geoLat": 456,
"id": 349
},
{
"geoLong": 7234,
"geoLat": 590,
"id": 349
},
{
"geoLong": 7234,
"geoLat": 590,
"id": 349
}
],
"958": [
{
"geoLong": 643,
"geoLat": 290,
"id": 958
},
{
"geoLong": 567,
"geoLat": 378,
"id": 958
}
]
}
推荐阅读
- curl - curl 无法解析子域,但浏览器可以
- xaml - Xamarin Forms 中的全局标记扩展
- java - 在 map().flatMap() 上使用单个 flatMap() 会更好吗?
- c# - 如何使用 C# 在同一类库中为控制台、Windows 和 Web 编写异常?
- django - Django Rest Framework SerializerMethodField 仅在 GET 请求上
- android - Firebase 实时数据库(android 客户端)的问题
- java - 延迟函数的执行,直到从 javafx 窗口返回字符串值
- python - 使用 Python 时,此 MySQL 版本不允许使用的命令
- sap - sap cloud platform 通过 API 或 CLI 工具列出 HTML5 应用程序
- mysql - 通过 SSH 将数据库表单独导出为 sql 文件