收藏
回答

算法求解

有两个数组,data1与data2,都含有元素,两数组的元素结构不一样,每个元素都有一个id。现在需要比较两个数组各个元素的id,两个数组中id不相同的元素找出来,并将这些元素放进新数组data3.

回答关注问题邀请回答
收藏

2 个回答

  • Farewell
    Farewell
    2019-04-12

    const data1 = [

    { id: "123", x: 5 },

    { id: "456", x: 8 },

    { id: "789", x: 9 }    //这个是两个数组id不同的元素,把他找出来赋给data3

    ]


    const data2 =

    [

    { id: "123", x: 5, y: 8 },

    { id: "456", x: 8, y: 9 }

    ]


    let data3 = []


    data1.forEach(item1 => {

    var flag = true

    data2.forEach(item2 => {

    if (item1.id == item2.id){

    flag = false

    }

    })

    if(flag){

    data3.push(item1)

    }

    })


    console.log(data3)


    2019-04-12
    有用
    回复
  • 正周
    正周
    2019-04-10

    for循环

    2019-04-10
    有用
    回复 19
    • ABCdeful
      ABCdeful
      2019-04-10

      我知道,但是我现在的for循环思路好像错了。想请教一下,大神

      2019-04-10
      回复
    • 陈
      2019-04-10回复ABCdeful

      a=[{id=1,a=1,b=2},{id=1,a=1,b=2}]

      b=[{id=1,c=1,d=2},{id=2,c=1,d=2}]

      for(var i=0;i<a.length;i++){

      for(var j=0;j<b.length;j++){

       if(a[i].id != b[i].id){

       进行你的操作

       }

      }

      }

      你想要的是这种吗?

      2019-04-10
      回复
    • ABCdeful
      ABCdeful
      2019-04-10回复

      不是,是这样的,比如:data1=[

      {id="123",x=5},

      {id="456",x=8},

      {id="789",x=9}    //这个是两个数组id不同的元素,把他找出来赋给data3

      ]

      data2=

      [

      {id="123",x=5,y=8},

      {id="456",x=8,y=9}

      ]

      经过算法运算,达到data3=[

      {id="789",x=9}

      ]


      2019-04-10
      回复
    • ABCdeful
      ABCdeful
      2019-04-10回复

      这个双for循环,是做不到的,踢不掉相同的元素

      2019-04-10
      回复
    • 陈
      2019-04-11回复ABCdeful

      兄弟,你是开发吗?我只是给你提供一个思路,告诉你可以用双for得出结果。 你复制我下面的去看看是不是得到了相同的元素

      var   data1 = [


      { id:"123", x:5 },


      { id:"456", x:8 },


      { id:"789", x:9 }]

      var data2 =


      [


      { id:"123", x:5, y:8 },


      { id:"456", x:8, y:9 }


      ]


      for (var i = 0; i < data1.length; i++) {


      for (var j = 0; j < data2.length; j++) {


      if (data1[i].id == data2[j].id) {

      console.log(data2[j].id)

      }


      }


      }



      2019-04-11
      回复
    查看更多(14)
登录 后发表内容