是否有内置的Javascript函数或库来执行以下操作:
const data = [
{ name: 'name1', type: 'type1' },
{ name: 'name2', type: 'type2' },
{ name: 'name3', type: 'type3' },
{ name: 'name4', type: 'type2' },
];
要搜索以下内容并返回type = 'type2'
所有对象
类似于data.findIndex((i) => i.type === 'type2')
的东西,但返回所有匹配而不是第一个索引?
谢谢
您正在寻找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)
你可以使用filter()
const data = [
{ name: 'name1', type: 'type1' },
{ name: 'name2', type: 'type2' },
{ name: 'name3', type: 'type3' },
{ name: 'name4', type: 'type2' },
];
let res = data.filter(({type}) => type === "type2");
console.log(res)