javascript - 删除对象数组中的对象键和值
问题描述
我的代码 =
这是我的示例数据。
const songs = [
{
"title": "Just Once",
"asset_id": "1f7e0fd8-db21-4c28-b9e1-eb0295af198c",
"sort": 1,
"performers": [
{
"last_name": "John",
"first_name": "Doe",
"group": {
"group_id": "1e5f73fa-ffe8-4c70-a83b-84e7bf985b25",
"dept_short_name": "PAO",
"dept_long_name": "Public Affairs Office"
},
"email": "john@doe.com"
}
]
}
]
const newTest= songs.map(( {...song} ) => (
song.performers.map(({...group}) => group_id = group.group_id)
))
我得到了这个结果:
我应该只从组对象中删除dept_short_name和dept_long_name并且group_id将保留,歌曲的其余数据应保持不变。
这应该是结果:
[
{
"title": "Just Once",
"asset_id": "1f7e0fd8-db21-4c28-b9e1-eb0295af198c",
"sort": 1,
"performers": [
{
"last_name": "John",
"first_name": "Doe",
"group_id":"1e5f73fa-ffe8-4c70-a83b-84e7bf985b25"
"email": "john@doe.com"
}
]
}
]
解决方案
您需要在两个地图中重新创建一个对象。
const songs = [{"title":"Just Once","asset_id":"1f7e0fd8-db21-4c28-b9e1-eb0295af198c","sort":1,"performers":[{"last_name":"John","first_name":"Doe","group":{"group_id":"1e5f73fa-ffe8-4c70-a83b-84e7bf985b25","dept_short_name":"PAO","dept_long_name":"Public Affairs Office"},"email":"john@doe.com"}]}]
const updated = songs.map(({
performers,
...song
}) => ({ ...song, // recreate song object
performers: performers.map(({
group: {
group_id
},
...performer
}) => ({ ...performer, // recreate performer object
group_id
}))
}))
console.log(updated)
推荐阅读
- python - Pyspark - Fill.na 位置变化.when 条件结果
- dictionary - 一步有效地将h5py属性复制到python dict
- html - 如何在默认情况下模糊输入字段并在单击角度复选框后切换它
- php - 使用 PHP 从字符串中获取所有 HTML 标签?
- docker - 从 Docker 容器运行 Docker
- c# - 实体框架 - 如何手动清除连接池?SNIX_Execute 错误
- reactjs - 子集合 ID
- javascript - 检测链接并在本机反应中返回另一个视图
- tensorflow - tf。load_model 返回传递给优化器的意外关键字参数:名称
- python - 使用亚马逊 EC2 实例托管烧瓶 Web GUI