2016-10-27 3 views
0

У меня есть объект, который представляет собой набор номеров индексов. Под каждым номером есть два свойства и массив. Я пытаюсь написать функцию, которая будет принимать аргументы номера индекса, свойства, которое нужно обновить, и значение. До сих пор я не могу понять, как получить доступ к массиву.Не удается получить доступ к вложенному массиву в объекте

var myObject = 
{ 
"0001": 
    { 
    "prop1": "" 
    "prop2": "" 
    "prop3": [] 
    } 

Чтобы получить доступ к prop1 и prop2 я был в состоянии просто использовать, если заявление:

if (prop == "prop1 ") 
{ 
    collection[id].prop1 = value; 
} 
else if(prop == "prop2") 
{ 
    collection[id].prop2 = value; 
} 

Когда я попытался получить в массив развалился. Я пробовал несколько вещей самым логичным:

if(prop == "prop3") 
{ 
    collection[id].prop3.push(value); 
} 

Где я иду не так?

+0

'Когда я попытался добраться до массива, он развалился. 'какая ошибка у вас на консоли? – gurvinder372

ответ

0

Возможно, вам нужно сначала создать массив.

if (prop == "tracks") { 
    collection[id].tracks = collection[id].tracks || []; 
    collection[id].tracks.push(value); 
} 
+0

Массив уже существует. Он инициализируется как пустой массив. –

+0

что это за ошибка, вы получаете? –

+0

Ошибка, просто не обновляется. Похоже, что это не соответствует условиям утверждения if и просто движется дальше. –

Смежные вопросы