2015-03-04 3 views
0

У меня есть два объекта Хэш.Включить несколько отдельных объектов в один массив объектов

One:

{"name" : "one" , "color" : "red" } 

Два:

{"name" : "two" , "color" : "blue" } 

Я пытаюсь взять эти два объекта и превратить их в нечто вида:

[{"name" : "one" , "color" : "red" }, {"name" : "two" , "color" : "blue" } ] 

Как можно достичь это с javascript?

Я также использую символ подчеркивания.

Также - Когда у меня есть новый объект, я буду получать больше отдельных объектов я хотел бы, чтобы задвинуть как -

Three : {"name" : "three" , "color" : "red" } 

Результат существо -

Result :  [{"name" : "one" , "color" : "red" }, {"name" : "two" , "color" : "blue" }, {"name" : "three" , "color" : "red" } ] 

Спасибо!

+2

'[o1, o2]; _; '<--- да, он использует подчеркивание! – zerkms

+0

У вас нет фиксированного количества переменных/объектов, чтобы сделать то, что вы сделали в своем вопросе? и ответ Александра? Является ли проблема гибкостью? – SmokeyPHP

+0

они будут продолжать поступать по одному за раз, поэтому я хотел бы постоянно вдаваться в этот новый массив объектов @SmokeyPHP – ajmajmajma

ответ

2

Попробуйте это:

var one = {"name" : "one" , "color" : "red" }; 
var two = {"name" : "two" , "color" : "blue" }; 
var array = [one, two]; 

Или использовать толчок как так:

var array = []; 
array.push(one); 
//array is now equal to [one] 
array.push(two); 
//array is now equal to [one,two] 

Или использовать unshift как это:

var array = []; 
array.unshift(one); 
// array is now equal to [one] 
array.unshift(two); 
// array is now equal to [two, one] 

По сути вы просто должны создавать переменные, чтобы захватить ваши ценности объекта Hash и использовать переменные, которые вы создали, чтобы создать массив.

Вы можете дополнительные значения, которые вы можете сделать это:

var three = {"name" : "three", "color" : "red" }; 
var array.push(three); 

Чтобы отобразить все значения:

for (var i = 0; i < array.length; i++) { 
    console.log(array[i]); 
} 
3

var a = {"name" : "one" , "color" : "red" }; 
 
var b = {"name" : "two" , "color" : "blue" }; 
 
var res = [a, b]; 
 
console.log(res);

или использовать толчок как так

var res = []; 
res.push(a); 
res.push(b); 
1

Если у вас есть unkonwn количество объектов, вы бы использовать push функцию массива :

var res = []; 
var one = {"name" : "one" , "color" : "red" }; 
var two = {"name" : "two" , "color" : "blue" }; 
res.push(one); 
res.push(two); 
// res is now: [{"name" : "one" , "color" : "red" }, {"name" : "two" , "color" : "blue" }] 
res.push({"name" : "three"}); 
// res is now: [{"name" : "one" , "color" : "red" }, {"name" : "two" , "color" : "blue" }, {"name" : "three"}] 
Смежные вопросы