js两个数组对象合并?

      let a = [1,2, 2, 3, 4, 4, 5, 6, 7, 10];
      let b = [
        { id: 1, value: "a" },
        { id: 2, value: "b" },
        { id: 2, value: "99" },
        { id: 3, value: "c" },
        { id: 4, value: "d" },
        { id: 4, value: "44" },
        { id: 11, value: "e" },
      ];
   // 期待数组C这样的结果
  let c = [
        { id: 1, value: "a" },
        { id: 2, value: "b" },
        { id: 2, value: "99" },
        { id: 3, value: "c" },
        { id: 4, value: "d" },
        { id: 4, value: "44" },
        { id: 5, value: null },
        { id: 6,

数组a与数组b合并成c的效果如何实现,
需要注意的是,合并都以a数组为准,但是a数组有两个2 b数组id也有两个2,两个值要确保对应
求指教?

阅读 1.4k
2 个回答

let a=[1,2,2,3,4,4,5,6,7,10]
let b = [

    { id: 1, value: "a" },
    { id: 2, value: "b" },
    { id: 2, value: "99" },
    { id: 3, value: "c" },
    { id: 4, value: "d" },
    { id: 4, value: "44" },
    { id: 11, value: "e" },
  ];
 //期待数组C这样的结果
let c=[];
//存储a中已经处理过的值
let d=[];

myFunction();
function myFunction()
{

//遍历a中的所有元素
for(let i in a){
    let ai=a[i];
    let have=0;
    if(!checkD(ai)){
        d.push(ai);
        for(let j in b){
        let bObj=b[j]; 
        if(bObj.id===ai){
              c.push(bObj);
              have=1;
        } 
    }
        if(have===0){

c.push({id:ai,value:null});

           }
    } 
}

console.log(c);
}


function checkD(a){
    let len=d.length;
    for(let i in d){
        if(a===d[i]){
            return true;
           }
    }
    return false;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题