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

如何基于包含关键词.com过滤JavaScript对象数组?

筛选包含指定子串的数组对象

你当前的过滤逻辑用了严格相等运算符===,只能匹配和.com完全一致的字符串,自然筛不出带域名的对象。只需修改过滤条件,用字符串的includes()方法就能实现“包含匹配”的需求:

修改后的核心过滤代码

var filter = "company";
var keyword = ".com";

// 用includes()判断字符串是否包含指定子串,可选链?.避免属性值为null/undefined时报错
var filteredArray = data.filter((item) => item[filter]?.includes(keyword));
console.log(filteredArray);

完整修改后的代码片段

const data = await page.evaluate(() => {
  const list = [];
  const items = document.querySelectorAll("body > div.js-application-root.full-size > div > main > div > div > div > div > div.content-wrapper.spec-program-contents > div > div.program__profile > ul > li")
  
  for (const name of items) {
    list.push({
      company: name.innerHTML,
    }) 
  }
  return list
})

var filter = "company";
var keyword = ".com";

// 替换原有的严格相等判断为包含匹配
var filteredArray = data.filter((item) => item[filter]?.includes(keyword));
console.log(filteredArray);

// jobs.deleteMany({})
// jobs.insertMany(data)
console.log(filteredArray)
await browser.close()

补充说明

  • includes()方法会检查目标字符串中是否存在指定子串,返回布尔值,刚好适配“包含匹配”的需求
  • 可选链操作符?.是为了避免部分item[filter]为null或undefined时触发报错,让代码更健壮

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 02:30:50