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

如何筛选嵌套数组对象中分类匹配指定字符串数组的元素

筛选功能实现方案

实现思路

  • 先处理mainobj的两层嵌套结构,提取出所有待筛选的文章对象
  • 对每个对象的category字段做匹配:只要有任意分类存在于筛选数组categoryfilterArray中,就保留该对象
  • 额外增加字符串去首尾空格的逻辑,兼容原数据中category值带多余空格的情况

实现代码

现代JS环境写法(推荐)

const filteredResult = mainobj
  // 打平两层嵌套的数组结构,得到所有文章对象的一维数组
  .flat(2)
  .filter(article => {
    // 只要有一个分类命中筛选规则就保留
    return article.category.some(cate => 
      categoryfilterArray.includes(cate.trim())
    )
  })

// 测试输出筛选结果
console.log(filteredResult)

兼容旧环境写法

如果运行环境不支持flat()方法,可以用多层遍历提取所有对象:

// 先提取所有文章对象到一维数组
const allArticles = []
mainobj.forEach(layer1 => {
  layer1.forEach(layer2 => {
    allArticles.push(...layer2)
  })
})

// 筛选逻辑和上面一致
const filteredResult = allArticles.filter(article => {
  return article.category.some(cate => 
    categoryfilterArray.includes(cate.trim())
  )
})

结果说明

按照你给出的示例数据,最终筛选结果会返回两个文章对象:

  1. 包含Sorare、Bundesliga分类的NFT新闻对象
  2. 包含Bitcoin分类的BTC价格新闻对象

内容的提问来源于stack exchange,提问作者Mohammed salim ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:36:03