Javascript从属性值匹配的对象数组返回数组

Art*_*hur 0 javascript arrays

是否有内置的Javascript函数或库可以执行以下操作:

const data = [
    { name: 'name1', type: 'type1' },
    { name: 'name2', type: 'type2' },
    { name: 'name3', type: 'type3' },
    { name: 'name4', type: 'type2' },
];
Run Code Online (Sandbox Code Playgroud)

要搜索以下内容并返回所有对象,其中 type = 'type2'

类似data.findIndex((i) => i.type === 'type2')但返回所有匹配项而不是第一个索引?

谢谢

Ori*_*ori 9

您正在寻找Array.filter()

filter()方法创建一个新数组,其中所有元素都通过了由提供的函数实现的测试。

例:

const data = [
    { name: 'name1', type: 'type1' },
    { name: 'name2', type: 'type2' },
    { name: 'name3', type: 'type3' },
    { name: 'name4', type: 'type2' },
]

const result = data.filter(o => o.type === 'type2')

console.log(result)
Run Code Online (Sandbox Code Playgroud)