JavaScript基于对象生成筛选数据集并新增category条目的实现问题
完整实现代码
let filter_data = []; // 前置非空判断避免报错 if (data.filter && data.filter.selectedFilterItems && data.filter.selectedFilterItems.length) { // 取第一个条目的categoryId,你也可以根据需求调整为取指定位置/指定规则的条目id const targetCategoryId = data.filter.selectedFilterItems[0].categoryId; // 原有相同code合并逻辑 const groupedFilterMap = data.filter.selectedFilterItems.reduce((acc, cur) => { if (acc[cur.code]) { acc[cur.code].value += `,${cur.name}`; } else { acc[cur.code] = { type: cur.code, value: cur.name }; } return acc; }, {}); filter_data = Object.values(groupedFilterMap); // 追加category类型条目 filter_data.push({ type: 'category', value: targetCategoryId }); }
可选调整说明
如果需要取指定规则的categoryId,比如取code为color的条目的id,可以把取值逻辑替换为:
const colorItem = data.filter.selectedFilterItems.find(item => item.code === 'color'); const targetCategoryId = colorItem ? colorItem.categoryId : '';
最终输出的filter_data结构示例:
[ {"type":"price","value":"0-435"}, {"type":"color","value":"MULTI,Pastel Tie Dye"}, {"type":"category","value":"0_435"} ]
内容的提问来源于stack exchange,提问作者user16468845
相关产品推荐
相关产品推荐

