2011-12-19 3 views
10

Allexamples добавления новых элементов в ассоциативные массивы идут «простым» способом и имеют только один размерный массив.).Добавить элемент в массив ассоциативных массивов

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

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

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

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

+1

Что _from scratch_ значит? – SLaks

+1

Это может быть полезно: [Javascript: добавление в ассоциативный массив] (http://stackoverflow.com/questions/8328508/javascript-adding-to-an-associative-array/8328541#8328541) – jabclab

+0

Плохая формулировка ... «с нуля» просто означает - новое. В основном это то же самое, что начинать с пустого массива и добавлять к нему элементы - ваши ответы уже отвечают на это :-) –

ответ

10

Я не совсем уверен, что вы имеете в виду под «с нуля», но это будет работать:

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 

Хотя синтаксис Размещенное Вами совершенно действительный способ создания его «сюда m scratch ".

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

4

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

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

+0

«массив объектов» - спасибо за разъяснение! В основном неименованные объекты, из-за {}? –

+1

@moontear: Нет такой вещи, как «именованный объект». – SLaks

+0

Понял, прочитает. –

1

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

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

Пожалуйста, исправьте свой скрипт, чтобы использовать newobj тоже – mplungjan

2
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); 
} 

делает тест равный

[{label:"name1", value:"data1"}, 
{label:"name2", value:"data2"}, 
{label:"name3", value:"data3"}, 
{label:"name4", value:"data4"}, 
{label:"name5", value:"data5"}] 
Смежные вопросы