如何为JS数据合并函数添加同CLASS不匹配的限制条件?
JavaScript合并函数修改方案
实现思路
在你原本基于weight匹配的合并逻辑中,额外加入CLASS不相等的判断条件,只有同时满足weight相同且CLASS不同的条目才会被合并。
修改后的代码示例
假设你的原始合并代码如下(如果你的代码逻辑有差异,核心判断条件的修改方式一致):
function mergeByWeight(items) { const result = []; items.forEach(item => { // 查找已存在的、weight相同且CLASS不同的条目 const match = result.find(itemInResult => itemInResult.weight === item.weight && itemInResult.CLASS !== item.CLASS ); if (match) { // 替换为你的具体合并逻辑,比如合并数值、拼接内容等 match.total += item.total; } else { result.push({...item}); } }); return result; }
关键改动说明
- 原逻辑仅通过
weight匹配可合并条目,现在新增itemInResult.CLASS !== item.CLASS的限制 - 只有两个条件同时满足时,才会执行合并操作;若CLASS相同,即使weight一致也会被视为独立条目保留
逻辑验证
- ✅ weight相同 + CLASS不同 → 合并
- ❌ weight相同 + CLASS相同 → 不合并,各自保留
- ❌ weight不同 → 无论CLASS是否相同,均不合并
内容的提问来源于stack exchange,提问作者Dark
相关产品推荐
相关产品推荐

