首页 > 解决方案 > 使用来自另一个对象的过滤器创建新对象

问题描述

我有一个来自后端的对象数组,如下所示:

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"
}

标签: javascriptreactjs

解决方案


我只是格式化新对象。

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

推荐阅读