Добавить элемент в массивы ассоциативных массивов

Все примеры добавления новых элементов в ассоциативные массивы идут "легко" и просто одномерный массив - моя проблема понимания заключается в наличии массивов внутри массивов (или это объекты в массивах?).

У меня есть следующий массив:

var test = [
            {
                value: "FirstVal",
                label: "My Label 1"
            },
            {
                value: "SecondVal",
                label: "My Label 2"
            }
           ];

Два вопроса: Как сгенерировать этот массив ассоциативных массивов (да... объект) с нуля? Как добавить новый элемент в существующий массив?

Спасибо, что помогли мне понять javascript.

Ответ 1

Я не совсем уверен, что вы подразумеваете под "с нуля", но это сработает:

var test = [];  // new array

test.push({
                value: "FirstVal",
                label: "My Label 1"
            });  // add a new object

test.push({
                value: "SecondVal",
                label: "My Label 2"
            });  // add a new object

Хотя синтаксис, который вы опубликовали, является вполне допустимым способом его создания "с нуля".

И добавление нового элемента будет работать одинаково test.push({..something...});.

Ответ 2

Это массив объектов.

Вы можете поместить в него больше объектов, вызвав test.push({ ... })

Ответ 3

var items = [{name:"name1", data:"data1"}, 
             {name:"name2", data:"data2"}, 
             {name:"name3", data:"data3"}, 
             {name:"name4", data:"data4"}, 
             {name:"name5", data:"data5"}]

var test = [];

for(var i = 0; i < items.length; i++){
    var item = {};
    item.label = items[i].name;
    item.value = items[i].data;
    test.push(item);
}

делает test равным

[{label:"name1", value:"data1"}, 
 {label:"name2", value:"data2"}, 
 {label:"name3", value:"data3"}, 
 {label:"name4", value:"data4"}, 
 {label:"name5", value:"data5"}]

Ответ 4

С нуля, следующие строки создадут заполнение массива объектами, используя метод Array.prototype.push:

var test = [];          // Create an array
var obj = {};           // Create an object
obj.value = "FirstVal"; // Add values, etc.
test.push(obj);