如何使用javascript基于数组中的键进行过滤?

如何使用javascript基于数组中的键进行过滤?,javascript,reactjs,filter,Javascript,Reactjs,Filter,经过筛选后,我能够获得 myArray = [{'id':'73','foo':'bar 22'}, {'id':'45','foo':'bar'}, {'id':'46','foo':'area'}, {'id':'47','foo':'line'}] var allbars = myArray && myArray.filter(function( obj ) { return obj.foo

经过筛选后,我能够获得

myArray = [{'id':'73','foo':'bar 22'},
           {'id':'45','foo':'bar'},
           {'id':'46','foo':'area'},
           {'id':'47','foo':'line'}]



var allbars = myArray && myArray.filter(function( obj ) {
      return obj.foo == "bar";
    });
但我需要所有的酒吧都在foo key里

 allbars = [{'id':'45','foo':'bar'}]

您应该在筛选条件中使用
.includes()

myArray=[{'id':'73','foo':'bar 22},
{'id':'45','foo':'bar'},
{'id':'46','foo':'area'},
{'id':'47','foo':'line'}]
var allbar=myArray&&myArray.filter(obj=>obj.foo.includes(“bar”);
console.log(allbar)
使用
String#includes()
String#indexOf()
而不是检查相等性。如果需要不区分大小写的匹配,请将这两个值转换为小写或大写

 Expected output is(in the key foo i have bar, bar22 both are expecting in the output but i can able to get only bar)
    allbars = [{'id':'45','foo':'bar'}, {'id':'73','foo':'bar 22'}]

可以使用
正则表达式
来实现

尝试indexOf('bar'))
var allbars = myArray && myArray.filter(function( obj ) {
      return obj.foo.includes("bar");
});
const pattern = new RegExp('bar', 'i');

var allbars = myArray && myArray.filter(function( obj ) {
      return pattern.test(obj.foo);
    });