我有一个疑问,什么是过滤具有对象数组的对象的最佳方法,我想返回具有匹配属性的对象
three items
上面的代码有效,但是我觉得它不是实现它的最佳方法,也许有人可以解决这个问题。
答案 0 :(得分:2)
如果要过滤现有数组并创建新数组,则应使用.filter
。仅在通过现有数组中的每个元素创建另一个数组时才使用.map
-请勿将其用于副作用。
您可以使用Object.values
代替Object.keys
,因为看起来您只在乎这些值:
const test = Object.values(repo).filter(({ name }) => name === post_name);
然后,您将获得一个具有匹配的name
对象的数组。
如果您知道只有一个匹配的对象,请改用.find
:
const match = Object.values(repo).find(({ name }) => name === post_name);