【问题标题】:Filter Array of objects in Javascript在Javascript中过滤对象数组
【发布时间】:2021-05-18 10:21:36
【问题描述】:

我正在制作一个搜索栏,以过滤我拥有的表格。 我知道如何按特定值过滤对象数组,例如“团队”值,请参见下面的代码:

const characters = [
  { name: 'Batman', team: 'Justice League' },
  { name: 'Hulk', team: 'Avengers' },
  { name: 'Flash', team: 'Justice League' },
  { name: 'Iron Man', team: 'Avengers' },
  { name: 'Avengers', team: 'X-Force' }
];

const avengers = characters.filter(character => character.team === 'Avengers');

我的问题是,如果想通过对象中包含值 Avengers 的任何属性来过滤它怎么办?无需手动操作,例如:

  const avengers = characters.filter(character => character.team === 'Avengers' || character.name === 'Avengers');

我之所以不想这样做,是因为有些对象相当大……

【问题讨论】:

标签: javascript reactjs typescript


【解决方案1】:

你可以的

  const avengers = characters.filter(character => !!Object.values(character).find(e => e === 'Avengers'));

【讨论】:

  • 使用 .some 可能会更好,因为它返回一个布尔值。
  • 尝试这样做时出现以下错误:“未捕获的 TypeError:复仇者联盟不是函数”
猜你喜欢
  • 2020-08-27
  • 1970-01-01
  • 2021-04-23
  • 2012-11-15
  • 2016-10-12
  • 2021-07-05
  • 1970-01-01
  • 2018-11-22
相关资源
最近更新 更多