Подтвердить что ты не робот

Javascript: переменная как массив

Я создаю и массиву, где мой массив имеет переменную типа:

var art = $('#article_id').val();
var stk =  $('#stk').val();
elements ={ art : stk };
alert(elements[art]);

но я получаю этот результат art=>50 вместо 5123=>50

4b9b3361

Ответ 1

ECMAScript 2015 (также известный как ES6 Harmony)

ES 2015 обеспечивает поддержку этого с помощью функции имена вычисленных свойств (хотя релевантный спецификации называется "Инициализатор объектов" ).

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

elements = { [art]: stk };

Исходный ответ (таргетинг на ES5)

Вы не можете создавать литералы объектов, подобные этому. Вам нужно написать

elements = {};
elements[art] = stk;

Причина, по которой elements = { art: stk } не работает, заключается в том, что она эквивалентна elements = { "art": stk } (с кавычками). Две версии эквивалентны в JavaScript, если art является юридическим идентификатором, а вторая версия дает понять, что происходит.

Ответ 2

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

elements = {};
elements[art] = stk;