js数组循环

  const hh = [
        { k: "1"},
        { k: "2"},
      ];

      const hh1 = [
        { k: "1"},
        { k: "2"},
        { k: "3"}
        { k: "1"},
        { k: "2"},
      ];

两个数组循环, 如何防止后面相同的项被前面的覆盖

预期结果

 const hh1 = [
        { k: "1",checked: true },
        { k: "2",checked: true },
        { k: "3",checked: false },
        { k: "1",checked: false},
        { k: "2",checked: false },
      ];

需要的结果是

       const hh1 = [
           { k: "1",checked: true },
        { k: "2",checked: true },
        { k: "3",checked: false },
        { k: "1",checked: true},
        { k: "2",checked: true },
      ];
阅读 1k
1 个回答

预期的结果和需要的结果,不知道你需要哪个

let hhobj = hh.reduce((o, i) => (o[i.k] = true, o), {})
hh1.forEach(item => {
    item.checked = hhobj[item.k] || false
    // 需要预期结果,就把下面的解注释
    // if(hhobj[item.k]){
    //     delete hhobj[item.k]
    // }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题