2015-12-26 45 views
2

所以我得到了不同的对象,从不同的来源获取数据。我需要将它们转换为单个对象,以便我可以重复它们。AngularJS - 如何将json追加到另一个json对象?

object1 = { 
"key1":"value one", 
"key2":"value two" 
} 

object2 = { 
"key1":"value three", 
"key2":"value four" 
} 

我需要的是

object3 = [{ 
"key1":"value one", 
"key2":"value two"}, 
{ 
"key1":"value one", 
"key2":"value two"} 
}]; 

我试图angular.merge但如果使用不同的密钥它才会起作用。在我的情况下,键将是相同的,只有数据会改变。

任何人都可以帮助附加object1object2创建类似object3这是object1+object2

我试图将它们转换为json字符串&并置它们,但它没有奏效。 阵列接触功能也不起作用。

+0

阅读[问]。然后创建MCVE。这非常简单,但你需要解决你的问题。此外,你需要学习JavaScript。 – Amit

+0

你想要做的是一个对象数组。查看阵列。 – toskv

+0

在对StackOverflow提出问题之前,请做一些基础研究。参见[JS教程 - JavaScript数组方法](http://www.w3schools.com/js/js_array_methods.asp)。 – georgeawg

回答

3

这只是香草的JavaScript。你想从这些对象中创建一个数组。

var object1 = { 
 
    "key1": "value one", 
 
    "key2": "value two" 
 
} 
 

 
var object2 = { 
 
    "key1": "value three", 
 
    "key2": "value four" 
 
} 
 

 
var object3 = []; // empty array 
 

 
// add the other objects to the array 
 
object3.push(object1); 
 
object3.push(object2);

,如果你的对象是已经数组,你只是想将它们连接起来,您可以使用数组CONCAT功能。

var object1 = [{ 
 
    key: 'abc', 
 
    value: 1 
 
}]; 
 
var object2 = [{ 
 
    key: 'cbd', 
 
    value: 2 
 
}]; 
 

 
// use the concat function to concatenate the arrays 
 
var object3 = object1.concat(object2);

你可以找到更多有关阵列通过阅读文档中发现here

如果你的对象是firebaseArray对象,它们有自己的API。更多可以找到here

+0

好的,当object1&2与{“key”:“value”}类似时,您的解决方案就可以工作。但在我的情况下,我将object1作为[{“key”:“value”}]。所以得到的object3得到这样的东西:[[{“key”:“value1”}],[“key”:“value 2”]] – Vineonardo

+0

@Vineonardo so object1 and object2 are already arrays?你只是想连接它们? – toskv

+0

这就是我想要的,但它不工作。它说concat不是一个函数。 – Vineonardo