在javascript中合并两个multidimentional对象

时间:2017-07-26 05:50:45

标签: javascript jquery angularjs

----对象1 ----

var sib1 =  {
        fname: 'sangram',
        lname: 'jadha',
        image: 'male.jpg',
        id: '1',
}

----对象2 ----

var sib2 =  {
            fname: 'sam',
            lname: 'jad',
            image: 'male.jpg',
            id: '2',
    }

-----预期输出--------

var sib3 =  {
           {
              fname: 'sangram',
              lname: 'jadha',
              image: 'male.jpg',
              id: '1',
            },
            {
                fname: 'sam',
                lname: 'jad',
                image: 'male.jpg',
                id: '2',
            }
           }

6 个答案:

答案 0 :(得分:0)



var sib1 =  {
        fname: 'sangram',
        lname: 'jadha',
        image: 'male.jpg',
        id: '1',
};

var sib2 =  {
            fname: 'sam',
            lname: 'jad',
            image: 'male.jpg',
            id: '2',
    };
    
    var sib3 = [];
    sib3.push(sib1);
    sib3.push(sib2);
    console.log(JSON.stringify(sib1)+","+JSON.stringify(sib2));




答案 1 :(得分:0)

您可以将对象一个接一个地推入sib3

sib3  =  new Array();

sib3.push(sib1);
sib3.push(sib2);

如果要查找从不同单个对象派生的对象数组,则必须使用此方法。

答案 2 :(得分:0)

您可以使用array#push来获取数组。

var sib1 =  {
        fname: 'sangram',
        lname: 'jadha',
        image: 'male.jpg',
        id: '1',
}

var sib2 =  {
        fname: 'sam',
        lname: 'jad',
        image: 'male.jpg',
        id: '2',
}

var sib3 = [];
sib3.push(sib1);
sib3.push(sib2);

console.log(sib3);

如果你想要对象。

var sib1 =  {
        fname: 'sangram',
        lname: 'jadha',
        image: 'male.jpg',
        id: '1',
}

var sib2 =  {
        fname: 'sam',
        lname: 'jad',
        image: 'male.jpg',
        id: '2',
}

var result = {
  sib1,
  sib2
};
console.log(result);

答案 3 :(得分:0)

创建一个新对象,其中sib1和sib2是该对象的属性。

var sib1 =  {
    fname: 'sangram',
    lname: 'jadha',
    image: 'male.jpg',
    id: '1',
};

var sib2 =  {
    fname: 'sam',
    lname: 'jad',
    image: 'male.jpg',
    id: '2',
};

var sib3 = {sib1: sib1, sib2: sib2}

但是,结果对象并不是您正在寻找的对象,并且根本无法使该对象成为可能。因为它无效。

答案 4 :(得分:0)

无效对象 var sib3 = {name: 'sangram',lname: 'jadha',image: 'male.jpg',id: '1',},{ fname: 'sam', lname: 'jad',image: 'male.jpg',id: '2',}

这个卑鄙的sib3格式不正确,你不能使用这样的对象。

编写此类对象的有效格式如下:

 var sib3 =  [{name: 'sangram',lname: 'jadha',image: 'male.jpg',id: '1',},{  fname: 'sam', lname: 'jad',image: 'male.jpg',id: '2',}]

要获得相同的(有效的格式数组),请使用以下代码:

 var sib1 = { fname: 'sangram', lname: 'jadha', image: 'male.jpg', id: '1' }
  var sib2 = { fname: 'sam', lname: 'jad', image: 'male.jpg', id: '2' }
 var sib3 =[]; 
 sib3.push(sib1);
 sib3.push(sib2);
console.log(sib3)

如果您仍然希望对象看起来如图所示,那么它将是字符串类型而不是对象。请参阅以下代码行:

var sib1 = { fname: 'sangram', lname: 'jadha', image: 'male.jpg', id: '1' }
      var sib2 = { fname: 'sam', lname: 'jad', image: 'male.jpg', id: '2' }
     var sib3 =[]; 
     sib3.push(sib1);
     sib3.push(sib2);
   var newObjAsString = JSON.stringify(sib3).substring(1,JSON.stringify(sib3).length - 1);
   
console.log(newObjAsString )

使用上面的代码行看起来像预期的那样,但这不是对象类型。

答案 5 :(得分:-1)

我认为您正在寻找Object.assign()方法,该方法将返回一个新对象,并覆盖您传入的对象的属性。

var sib3 = Object.assign({},sib1, sib2);

另一种可能性是你希望sib3成为一个数组,然后你可以做

sib3 = [sib1, sib2]

    var sib1 =  {
        fname: 'sangram',
        lname: 'jadha',
        image: 'male.jpg',
        id: '1',
    }
    var sib2 =  {
            fname: 'sam',
            lname: 'jad',
            image: 'male.jpg',
            id: '2',
    }
    var sib3 = Object.assign({},sib1, sib2);
    console.log(sib3)