Ключи объекта - элементы массива

282
21 января 2019, 03:20

Возможно ли сделать объект такого вида? Выводится ошибка, что нельзя использовать квадратные скобки в ключах:

var base = {}, number = '12345', arr = ['type','class','addition'], one = 'add', two = 'me in', three = 'code';
base[number][arr[0]][arr[1]][arr[2]] = {"data": [one, two, three]};
Answer 1

Нет - это запрещено.

Когда вы используете {}, то вы создаете так называемый ассоицативный массив, который работает как ключ -> значение

В Вашем же случае, вы создаете ассоциативный массив без ключа и Javascript не будет знать, как найти этот элемент, который вы добавили туда.

Судя по тому, что вы хотите получить, вам надо сделать как-то так:

base = {};
base[number] = {};
base[number][arr[0]]={}
base[number][arr[0]][arr[1]]={}
base[number][arr[0]][arr[1]][arr[2]]={}
base[number][arr[0]][arr[1]][arr[2]] = {"data": [one, two, three]}

Результат будет:

{data: Array(3)}
READ ALSO
Сохранить размер и позицию элемента при изменении родительского элемента в HTML через Javascript

Сохранить размер и позицию элемента при изменении родительского элемента в HTML через Javascript

У меня есть элемент в ячейке таблицы, у него в стиле указано width: 100%; height: 100%, я вытаскиваю элемент из таблицы и перемещаю его в bodyПосле этого...

163
How to make loading of template after ngOnInit. Angular 5

How to make loading of template after ngOnInit. Angular 5

When I am logged in and go to the login I shortly see the login form and then the normal dashboardThe login form should not be visible at all for logged in users when they visit the main page

166
Как конвертировать pkcs1 в pkcs8 и обратно?

Как конвертировать pkcs1 в pkcs8 и обратно?

Как конвертировать pkcs1 в pkcs8 и обратно? Либо на javascript, либо на python

177
Обработка пикселей с помощью canvas

Обработка пикселей с помощью canvas

Подскажите, как мне получить информацию о пикселях на отрисованном мной холсте с помощью функции getImageData()Я не загружаю картинку, рисую самостоятельно...

155