2016-02-17 3 views
0

Обновление: Я пытаюсь построить таблицу из моей структуры данных (например, section1), а затем разрешить пользователям добавлять строки в таблицу, чтобы вставить больше строк и сохранить их в моей структуре данных.pushing items to object array - javascript

У меня есть массив newArr в виде пар ключей. Когда кто-то нажимает на кнопку, я хочу, чтобы иметь возможность подталкивать newArray в группы. Я, похоже, не могу нажать в массив Groups. В инструментах Chrome dev отображаются группы как объекты, и я не уверен, как прорисовывать и добавлять к каждому элементу объекта Groups. Не стесняйтесь изменять $ scope.section1 в другую структуру данных, которая может облегчить подталкивание к ней новых элементов.

$scope.section1 = [{ 
       "id":1, "Name": "Section 1: Inventory", 
       "Groups":[ 
        {"cell" : "Number", "cellValue" : "value1"}, 
        {"cell" : "Location", "cellValue" : "value2"}, 
        {"cell" : "Severity", "cellValue" : "value3"} 
       ], 
       "FootNotes":[ 
        {"templateurl" : "components/section/templates/notes/section1.notes.html"} 
       ] 
      }] 

     var newArr = {"cellValue" : "value4","cellValue" : "value5","cellValue" : "value6"} 

Так что вывод должен выглядеть

$scope.section1 = [{ 
        "id":1, "Name": "Section 1: Inventory", 
        "Groups":[ 
         {"cell" : "Number", "cellValue" : "value1", "cellValue" : "value4"}, 
         {"cell" : "Location", "cellValue" : "value2", "cellValue" : "value5"}, 
         {"cell" : "Severity", "cellValue" : "value3", "cellValue" : "value6"} 
        ], 
        "FootNotes":[ 
         {"templateurl" : "components/section/templates/notes/section1.notes.html"} 
        ] 
       }] 
+0

объект не может иметь два идентичных ключа , –

ответ

1

Вы не можете иметь два свойства с тем же именем. У вас есть cellValue два раза для группы объектов. Что ты пытаешься сделать?

Лучше бы изменить саму структуру:

... 
"Groups": [ 
    { 
     name: "group1", 
     values: ['value 1', 'value 2', 'value 3'] 
    } 
] 

Тогда, добавив еще одно значение group1:

$scope.section1[0].Groups.values.push('value 4') 

Примечание, чем я стараюсь уважать всю структуру, у вас уже есть, но я не имею в виду, что это оптимальный способ решить вашу проблему.

0
$scope.section1[0].Groups.push({ 
    "cell" : "Number", 
    "cellValue" : "value1", 
    "anotherCellValue" : "value4" 
});