javascript - 使用来自另一个对象的过滤器创建新对象
问题描述
我有一个来自后端的对象数组,如下所示:
items = [{
id: 0
name: "example1"
price: 15
sizes: [10, 12, 15.5]
types: ["one", "two"]
},
{
id: 1
name: "example2"
price: 15
sizes: [10, 12, 15.5]
types: ["one", "two"]
}
]
我收到 id 作为道具并像这样使用 find() :
let addedItem = items.find((item) => item.id === id)
结果(对于 id = 0):
addedItem = {
id: 0
name: "example1"
price: 15
sizes: [10, 12, 15.5]
types: ["one", "two"]
}
我也得到了像这种类型(1)、大小(0)这样的数据作为道具。那么我怎样才能创建这样的新对象呢?:
item = {
id: 0
name: "example1"
price: 15
size: 10
type: "two"
}
解决方案
我只是格式化新对象。
let item = items.find((item) => item.id === id)
let formattedItem = {
id: item.id,
name: item.name
price: item.price
size: item.sizes[0]
type: item.types[0]
}
我还会检查大小是否是一个有效的数组,例如
type: item.types.length ? item[0] : null
推荐阅读
- react-native - 根据状态值更改背景颜色
- php - Laravel 设置 Pdf 保护
- reactjs - 使用 oidc-client 和客户端密码反应 SPA
- php - 如何通过条带收取不同金额而不是实际授权金额?
- google-cloud-platform - 当我将 .ova 文件导入谷歌云以创建 VM 实例时的问题
- r - R:定义一个变量为1,每次第一次满足一个条件
- java - 休眠错误 column0_.id 不存在
- r - 合并两个以上的数据框
- amazon-web-services - AWS Kinesis,具有保证排序的并发 Lambda 处理
- c# - 删除对 HTTPS 的要求 - ASPNet Razor 应用程序