javascript - 如何通过从另一个对象中选择特定属性来克隆新的对象数组?
问题描述
所以,
我收到包含以下信息的数据:
{
"data":[
{
"vote_count":22222,
"id":299537,
"ready":false,
},
{
"vote_count":2850,
"id":299534,
"ready":true,
},
]
}
现在我需要创建一个包含相同结构但具有一些属性的新对象,即:
{
"data": [
{
"ready":false,
},
{
"ready":true,
}
]
}
我需要可扩展的解决方案,例如,想象有一组具有 50 个属性的数据。此外,我确实找到了对象的解决方案,但从未找到对象数组。
谢谢大家,我已经忙了三个小时了。
解决方案
const input={"data":[{"vote_count":22222,"id":299537,"ready":false,},{"vote_count":2850,"id":299534,"ready":true,},]}
const data = input.data.map(({ ready }) => ({ ready }))
console.log({ data })
如果你想获得一堆属性,你可以创建一个你需要的属性数组。然后使用Object.assign()
orreduce
创建每个对象的子集,如下所示:
const input={"data":[{"vote_count":22222,"id":299537,"ready":false,},{"vote_count":2850,"id":299534,"ready":true,},]}
const properties = ["vote_count", "ready"]
const data = input.data.map(a =>
Object.assign({}, ...properties.map(p => ({ [p]: a[p] })))
)
/* You could also use reduce like this:
input.data.map(a => properties.reduce((r, p) => ({ ...r, [p]: a[p] }), {}))
*/
console.log({ data })
推荐阅读
- django - 如何通过 Queryset 在 Python 函数中访问 Django 模型实例的“absolute_url”
- python - 使用 Jinja 按嵌套字典值过滤
- c# - 同一数据库上的多个项目、上下文和表
- apache-kafka - 使用kafka为clickhouse生成数据
- google-cloud-platform - 尝试重新创建 cloudsql 实例时出现错误“项目中的资源是冲突的主题”的原因是什么?
- c# - 我可以将 ics 文件发送给 Outlook 与会者,将与会者状态更新为接受/拒绝吗
- python - 如何使用 webpy 在 python 中修复 500 Internal Server Error?
- objective-c - 绑定套接字时出错:NSPOSIXErrorDomain Code=1 "Operation not allowed"
- swagger - 如何在调用 Rest Endpoint 时在 Swagger 中设置输入参数选项
- php - PHP:如果 MYSQL Result 大于 0,添加到数组中?