2015-12-26 5 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, но она работает только тогда, когда ключи различны. В моем случае ключи будут одинаковыми, только данные будут меняться.

Может кто-нибудь помочь добавить object1 к object2, чтобы создать что-то вроде object3, который object1+object2.

Я попытался преобразовать их в строку json &, объединив их, но это не сработало. Функция контакта с массивом также не работает.

+0

Прочтите [ask]. Затем создайте MCVE. Это ** очень ** просто, но вам нужно исправить свой вопрос. Кроме того, вам необходимо изучить JavaScript. – Amit

+0

то, что вы хотите сделать, представляет собой массив объектов. найдите массивы. – toskv

+0

Прежде чем задавать вопросы по StackOverflow, проведите фундаментальные исследования. См. [JS Tutorial - Методы массива 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"}]. Таким образом, получаемый объект3 получает что-то вроде этого: [[{"key": "value1"}], ["key": "value 2"]] – Vineonardo

+0

@Vineonardo so object1 и object2 уже массивы? и вы просто хотите их конкатенировать? – toskv

+0

вот что я пытаюсь, но он не работает. Он говорит, что concat не является функцией. – Vineonardo

Смежные вопросы