2017-02-21 4 views
0

У меня есть список объектов, и я пытаюсь динамически создавать дополнительные вспомогательные объекты. Задача работает, но я получаю неопределенный результат для родителя. Он должен помещать мой контент в Data, создавая под-объект. Я полагаю, что мне не хватает шага в процессе, который связан с преобразованием String в объект.Возвращаемый объект Не определено

var steps_array = 
{ 
    Step_1: 
    { 
     Data : "" 

    }, 
    Step_2: 
    { 
     Data : "" 
    }, 
    Step_3: 
    { 
     Data : "" 
    }, 
    Step_4: 
    { 
     Data : "" 
    } 
} 

Javascript для загрузки динамического контента,

steps_array.Step_3[steps_array.Data] = {loc:{location : 4}}; 
+0

это не массив. Квадратные скобки '[]' определяют массив, а не фигурные скобки '{}' –

+1

Что вы ожидаете от 'steps_array.Data'? – Quentin

+0

'steps_array.Step_3.Data = {loc: {location: 4}};' –

ответ

2

Прежде всего, ваш объект не массив - поэтому вы будете лучше использовать точечный синтаксис. Учитывая, что вы хотите сделать, вероятно:

steps_array.Step_3.Data = { loc: { location: 4 } }; 
+0

steps_array ['Step_3'] будет работать. Ошибочно утверждать, что они не будут обозначать точку. –

+0

Обновлено, спасибо! – NikxDa

+0

Ну .. Точечная нотация сработала ... Большое спасибо! – Cam

0

Основная проблема заключается в том, что вы пытаетесь получить доступ к объекту, которого нет.

Ваш объект имеет много ключей с именем Step_ #, но в этом коде: steps_array.Step_3[steps_array.Data] = {loc:{location : 4}}; вы пытаетесь получить доступ к свойству .Data, которого не существует. Таким образом, вы пытаетесь получить доступ к значению свойства undefined.

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