首页 > 解决方案 > 在我输入时过滤对象数组

问题描述

我试图让它工作,以便在我仅部分包含搜索字符串时返回对象。现在它只有在val === 'Brady'我希望它工作时才val === 'B'有效val === 'Ba'

const data = [{firstName: 'Brady',lastName: 'Smith'},{firstName: 'Jason',lastName: 'Brady'},{firstName: 'Michael',lastName: 'Bolten'}];

const filteredData = data.filter(data=>
     Object.values(data).some(val=> val === 'Brady')
)

console.log(filteredData)

标签: javascriptecmascript-6

解决方案


您可以使用它includes来检查字符串是否是子字符串。

includes()方法确定是否可以在另一个字符串中找到一个字符串,并根据需要返回 true 或 false。

const data = [{
  firstName: 'Brady',
  lastName: 'Smith'
}, {
  firstName: 'Jason',
  lastName: 'Brady'
}, {
  firstName: 'Michael',
  lastName: 'Bolten'
}];

const search = "Br";
const filteredData = data.filter(data =>
  Object.values(data).some(val => {
    console.log(typeof val);
    return val.includes(search);
  })
)

console.log(filteredData)


推荐阅读