You need to enable JavaScript to run this app. JS按索引对比多维数组并将差异项补入第二个数组的实现问题
优惠活动
大模型
产品
解决方案
定价
更多

JS按索引对比多维数组并将差异项补入第二个数组的实现问题

问题原因

你的原有代码错误嵌套了一层对整个customers数组的遍历,导致parent对应下标的子数组元素会被插入到所有customers子数组中,没有按照下标一一对应处理。

修改方案

只需要保留两层循环,外层遍历数组下标,拿到同下标的parent子数组和customers目标子数组,再遍历parent子数组的元素做判断插入即可:

const parent = [['ff@gmail.com', 'a@a.com', 'f@f.com'], ['ff@gmail.com']];
const customers = [['hh@gmail.com'], ['gg@gmail.com']];

for(let x = 0; x < parent.length; x++){
  // 仅取当前下标对应的customers子数组作为目标
  const targetSubArr = customers[x];
  // 遍历当前parent子数组的每个邮箱元素
  for(const email of parent[x]){
    if(!targetSubArr.includes(email)){
      targetSubArr.push(email);
    }
  }
}

console.log(customers)
// 输出:[["hh@gmail.com", "ff@gmail.com", "a@a.com", "f@f.com"], ["gg@gmail.com", "ff@gmail.com"]]

如果你偏好更简洁的写法,也可以用forEach实现相同逻辑:

parent.forEach((parentSub, index) => {
  const target = customers[index];
  parentSub.forEach(email => !target.includes(email) && target.push(email));
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 03:54:04