You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何过滤对象数组,筛选属性值含指定关键词的对象

问题根因

你代码里的'people'||'companies'会优先执行逻辑或运算,JavaScript中非空字符串属于真值,逻辑或会直接返回第一个真值'people',所以实际你的代码只判断了标题是否包含people,自然无法匹配到带companies的书籍。

修复代码

基础写法(直接判断两个条件)

把逻辑或放到两个includes判断结果之间即可:

let matchedBooks = books.filter(book => book.title.includes('people') || book.title.includes('companies'));
console.log(matchedBooks);

优化写法(适配多关键词场景)

如果后续需要新增匹配关键词,可以用关键词数组+some方法简化代码,避免重复写判断逻辑:

// 要匹配的关键词都放在这个数组里即可
const matchKeywords = ['people', 'companies'];
let matchedBooks = books.filter(book => {
  return matchKeywords.some(key => book.title.includes(key));
});
console.log(matchedBooks);

内容的提问来源于stack exchange,提问作者alexGH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:06:02