2016-04-04 2 views
0

У меня есть массив с объектами. Мне нужно, чтобы каждый объект добавлял ключ, который будет массивом других объектов.Добавить новый ключ (массив) в существующий объект json

Так что мой код выглядит следующим образом:

$scope.array = []; 

$http.get(url).success(function(data) { 

    $scope.array = data; 

    // Now my array has some objects 
    var i = 0; 
    function() getSomeData(i) { 
     if(i<array[i].length()) { 
     $http.get(url + array[i].someKey).success(function(data){ 
      $scope.array[i].push(data); 
      i++; 
      getSomeData(i); 
     }) 
     } 
    } 

}) 

getSomeData(0); 

Но я получаю Error:array.push is not a function

Почему это происходит?

+0

, прежде чем сделать '$ scope.array = данные;' Вы можете сказать нам, что выход 'тревоги (TYPEOF данные);' – gurvinder372

+0

тип данных объекта – Korte

+0

В этом скрипте нет переменной 'array'. – MinusFour

ответ

5

Вы пытаетесь нажать на объект вместо массива. Либо делать:

$scope.array.push(data), чтобы добавить новый объект.

или сделать $scope.array[i] = data, чтобы обновить объект по конкретному индексу в массиве.

+0

Мне действительно нужно обновить объект по конкретному индексу в массиве, добавив данные в качестве ключа объекта. – Korte

+0

@Korte, вы можете получить доступ к объектам, выполнив $ scope.array [i] .keyname. Если у вас есть ключ с именем «foo», и вы хотите установить значение «bar», выполните $ scope.array [i ] .foo = "bar". –

+0

большое спасибо – Korte

0

Объекты в JSON добавляются с использованием двух методов. Вы можете попробовать один из них.

object["property"] = value; 

или

object.property = value; 
Смежные вопросы