JavaScript如何将catalogCategories中不重复分类动态推入新数组
解决方案
核心修改逻辑
- 补充
catalogCategories合法性校验,避免数组不存在、为空时触发报错 - 遍历每个元素的
catalogCategories全量分类,而非硬编码读取前2个元素 - 逐个判断分类是否已存在于结果数组,仅新增未出现过的分类
完整可运行代码
let categoryData = []; for (let product of list) { // 跳过分类不存在/为空的情况 if (!Array.isArray(product.catalogCategories) || product.catalogCategories.length === 0) { continue } // 遍历当前元素的所有分类 product.catalogCategories.forEach(category => { // 校验分类是否已存在 const isDuplicate = categoryData.some(item => item.value === category) if (!isDuplicate) { categoryData.push({ name: "catalogCategories", label: category, selected: false, value: category }) } }) }
最终输出的categoryData结构示例
[ { name: 'catalogCategories', label: 'sport', selected: false, value: 'sport' }, { name: 'catalogCategories', label: 'economy', selected: false, value: 'economy' }, { name: 'catalogCategories', label: 'politics', selected: false, value: 'politics' }, { name: 'catalogCategories', label: 'tourism', selected: false, value: 'tourism' }, { name: 'catalogCategories', label: 'universe', selected: false, value: 'universe' } ]
内容的提问来源于stack exchange,提问作者Koala7
相关产品推荐
相关产品推荐

