输入时过滤对象数组

时间:2019-08-14 03:58:11

标签: javascript ecmascript-6

我正在尝试使其工作,以便在我仅部分包含搜索字符串时返回对象。目前,只有在val === 'Brady'val === 'B'等情况下,它才可以工作。

val === 'Ba'

3 个答案:

答案 0 :(得分:1)

您可以使用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)

答案 1 :(得分:0)

如果您想开头-您可以尝试:

const filteredData = data.filter(data=>
 Object.values(data).some(val=> val.startWith(<your input value here>))
)

答案 2 :(得分:0)

您可以使用String includes()方法

const filteredData = data.filter(data=>
  Object.values(data).some(val=> val.includes("B") );
)