根据Javascript中不同的搜索属性值数组,匹配数组中的一组对象

盖·鲍登

是否有更好的方法根据特定属性的一组可能值来过滤对象数组?

这可行,但似乎有些笨拙。

const all = [
  {id: 1}, {id: 2}, {id: 3} ...
]
const ids = [2, 3];

const selected = (all, ids) =>
  all.filter(obj => ids.map(id => id === obj.id).some(match => match));

selected(all, ids);
// [{id: 2}, {id: 3}]

在Python中将是这样的:

selected = [obj for obj in all if obj.id in ids]
阿曼德·辛格

您可以使用Array.filter()简单过滤出数组Array.includes()

const all = [ {id: 1}, {id: 2}, {id: 3} ];
const ids = [2, 3];

const selected = (all, ids) => all.filter(obj => ids.includes(obj.id));
  
console.log(selected(all,ids));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章