JS如何匹配两个数组的activityCode更新对应对象的isValid属性值
实现方案
推荐先把数组b的activityCode提取为Set集合,再遍历数组a赋值isValid属性,相比每次遍历查询b的写法,性能更高,尤其适合数据量较大的场景。
方案1:直接修改原数组a
// 提取b中所有activityCode存入Set const validCodeSet = new Set(b.map(el => el.activityCode)) // 遍历a更新isValid属性 a.forEach(el => { el.isValid = validCodeSet.has(el.activityCode) })
执行后原数组a就会变成你需要的结果。
方案2:生成新数组,不修改原数组a
如果不想改动原始的a数组,可以用map返回新数组:
const validCodeSet = new Set(b.map(el => el.activityCode)) const processedA = a.map(el => ({ ...el, isValid: validCodeSet.has(el.activityCode) }))
processedA就是处理后的目标数组。
内容的提问来源于stack exchange,提问作者devin liu
相关产品推荐
相关产品推荐

