开发者问题收集

如何从具有过滤值的旧对象创建新对象

2021-12-19
901

我有一个对象:

const items = {
  a: [3,5],
  b: [6,7,8],
  c: [0,10,1111]
}

以及数组:

const existing = [3,8]

我想创建一个新对象,但不包含现有数组中包含的值。我指的是这个:

const newItems = {
  a: [5],
  b: [6,7],
  c: [0,10,1111]
}

请提供提示!

2个回答
101287864
HDM91
2021-12-19

您可以将 Object.entriesObject.fromEntriesfilter 结合使用来获取所需的结果。

const items = {
  a: [3, 5],
  b: [6, 7, 8],
  c: [0, 10, 1111],
}

const existing = [3, 8]

const newEntries = Object.entries(items).map(([key, value]) => [
  key,
  value.filter((x) => !existing.includes(x))
])


const newObject = Object.fromEntries(newEntries)
Ayman El Temsahi
2021-12-19