如何使用jQuery从json对象中的数组中删除重复项

时间:2018-02-18 17:04:19

标签: jquery arrays json

给定一个带有数组的JSON对象,我能够遍历并显示每个对象的每个标记,但每个对象都有重复的标记。如何循环检查标签是否已经存在,然后将其推入阵列?我尝试创建一个空数组,循环并将每个项目推送到一个新数组,但这似乎并没有正常工作。最后,我应该有一个标签数组,我可以在列表中显示,没有重复的标签。

的jQuery

 [
  {
    "tags": ["melodrama", "romance", "time travel"]
  },
  {
    "tags": [
      "melodrama",
      "historical",
      "romance",
      "war",
      "fantasy",
      "period drama",
      "based on a novel"
    ]
  },
  {
    "tags": [
      "mystery",
      "thriller",
      "action",
      "crime",
      "comedy",
      "feature film"
    ]
  },
  {
    "tags": ["romantic comedy", "romance", "fantasy"],
  },
  {
    "tags": ["romantic comedy", "romance", "comedy"],
  },
  {
    "tags": ["romance", "comedy", "drama", "romantic comedy"]
  },
  {
    "tags": ["romance", "medical"]
  },
  {
    "tags": [
      "romantic comedy",
      "comedy",
      "family relationships",
      "Staff Favorites"
    ]
  },
  {
    "tags": ["romantic comedy", "romance", "fantasy", "based on a manga"]
  },
  {
    "tags": ["romance"]
  }
]

JSON对象

{{1}}

当前结果的部分示例:

enter image description here

我需要让每个标签只显示一次,例如(情节剧,浪漫等)。

1 个答案:

答案 0 :(得分:0)

您可以连接所有标记数组,然后将其转换为集合并再次返回以获取所有唯一标记:

let tags = [];
for (const i of data) {
    tags = tags.concat(i.tags);  
}
tags = [...new Set(tags)];

// tags is now an array of all unique tags