首页 > 解决方案 > 过滤对象数组的一部分的更有效方法?

问题描述

我有一个items用这种结构调用的大型对象数组:

abc: [{object0}, {object1}, ... {objectN}],
def: [...],
ghi: [...],
jkl: [...]

为了清楚起见,我已经简化了一些事情。可以说,def,ghijkl包含与 相同的对象数组结构abc

每个object#都有许多属性,其中之一是hiddenhidden通常是错误的,但对于abc数组中的一些对象,它是正确的。

我想返回一个删除items了所有对象的新实例。hidden=true

这段代码实际上是有效的:

items = {
  abc: items.abc.filter(item => item.hidden === false), 
  def: tasks.def,
  ghi: tasks.ghi,
  jkl: tasks.jkl
};

但我想知道是否有更优雅的方式来实现这一点?

罗伯特

标签: javascript

解决方案


你可以做这样的事情

const data = {
// your source data set
}

const items = {}

for(let key in data) {
  items[key] = data[key].filter(item => item.hidden === false)
}

推荐阅读