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

JavaScript:如何根据另一数组的值过滤对象数组?

过滤包含指定标签的对象数组

给定如下对象数组:

let mainArray = [
{
    "contentTitle": "Article 2 Test",
    "contentTags": [
        "Movies",
        "Stories"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article2.html"
},
{
    "contentTitle": "Sub Article page",
    "contentTags": [
        "test",
        "Podcasts"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article1/sub-article-page.html"
},
{
    "contentTitle": "Page title article",
    "contentTags": [
        "books",
        "hotels"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article1.html"
},
{
    "contentTitle": "Article 5",
    "contentTags": [
        "random",
        "random2"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article-new5.html"
}];

以及过滤标签数组:

let filterArray = ["Movies", "Podcasts"];

需要筛选出mainArray中contentTags包含filterArray里任意标签的对象,最终结果如下:

[
{
    "contentTitle": "Article 2 Test",
    "contentTags": [
        "Movies",
        "Stories"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article2.html"
},
{
    "contentTitle": "Sub Article page",
    "contentTags": [
        "test",
        "Podcasts"
    ],
    "contentPagePath": "global/en/top-page/listing-page/article1/sub-article-page.html"
}
]

解决方案

可以使用数组的filter方法结合some方法实现需求:

const filteredArray = mainArray.filter(item => 
  item.contentTags.some(tag => filterArray.includes(tag))
);
console.log(filteredArray);

代码说明

  • filter方法遍历mainArray,返回符合条件的对象组成的新数组。
  • some方法检查当前对象的contentTags数组中是否存在至少一个标签在filterArray里,只要有一个匹配就返回true,该对象会被保留。
  • includes方法用于判断filterArray是否包含当前遍历到的标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 11:25:18