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

如何在Javascript中创建唯一JSON对象字面量数据集并提取去重分类数组

语法修正说明

你提供的示例JSON存在2处语法错误,先修正为合法可操作的JS数据结构:

const productData = {
  "products": [
    {
      "id": 1,
      "categories": {
        "1": "Men"
      }
    },
    {
      "id": 2,
      "categories": {
        "1": "Men"
      }
    }, 
    {
      "id": 3,
      "categories": {
        "1": "Woman"
      }
    }
  ]
}
去重提取分类实现方案

方式1:Set+flatMap 简洁实现(主流环境通用)

利用Set自动去重的特性,一行代码完成提取:

const uniqueCategories = [...new Set(productData.products.flatMap(item => Object.values(item.categories)))]
console.log(uniqueCategories) // 输出:["Men", "Woman"]

方式2:遍历手动去重(兼容低版本JS环境)

适配不支持flatMap的老旧运行环境:

const categorySet = new Set()
productData.products.forEach(product => {
  // 提取单个产品下所有分类值,适配categories多键值对场景
  const currentCates = Object.values(product.categories)
  currentCates.forEach(cate => categorySet.add(cate))
})
const uniqueCategories = Array.from(categorySet)
console.log(uniqueCategories) // 输出:["Men", "Woman"]
补充说明
  • 若你的categories结构固定只有键1,可以直接用item.categories['1']替换Object.values(item.categories)进一步简化逻辑
  • 如需生成唯一的JSON对象字面量数据集,可基于上述去重后的分类数组,结合业务自定义字段结构即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:54:05