javascript - 如何使用javascript根据数组中的键进行过滤?

标签 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 == "bar";
    });

过滤后得到

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

但我需要 foo 键中存在所有条形图

 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'}]

最佳答案

你应该在过滤条件中使用.includes()

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

var allbars = myArray && myArray.filter(obj => obj.foo.includes("bar"));
    
console.log(allbars)

如果你想让它兼容浏览器 (IE),你可能想使用 .indexOf()

myArray = [{'id':'73','foo':'bar 22'},
           {'id':'45','foo':'bar'},
           {'id':'46','foo':'area'},
           {'id':'47','foo':'line'}]
           
var allbars = myArray && myArray.filter(obj => obj.foo.indexOf("bar") > -1);
    
console.log(allbars)

关于javascript - 如何使用javascript根据数组中的键进行过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667086/

相关文章:

javascript - 谷歌地图中的响应式 svg 标记图标

node.js - 如何使用 react-boilerplate 修复 `npm install` 错误?

python - 使用 pandas,如何定位我的列包含列表的值?

javascript - 在 javascript 中将数据从一个对象传递到另一个对象

javascript - 与 undefined variable 相关的错误

javascript - TypeScript:如何将 DefaultTheme 与样式组件结合起来?

javascript - React - Selenium 测试

cocoa - QC 组合将黑色和白色像素转换为其他两种颜色

javascript - 通过 Jquery 中的下拉输入动态更新复选框选项

javascript - jquery 对象 key 对未定义