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

Добавить динамический ключ, пары значений в массив JavaScript или хеш-таблицу

Я пытаюсь добавить пару ключевых значений в существующий ассоциативный массив javascript. Ключ должен быть переменной. Это для кодирования JSON. Я понимаю, что для этого есть много плагинов и фреймворков, но я хочу простой ответ.

ary.push({name: val});

где ary - новый массив, name - это переменная, содержащая ключ, val - значение этой записи.

Я делаю это в цикле jQuery, который выполняет итерацию через поля формы.

4b9b3361

Ответ 1

В ES6...

В ES6 вы можете использовать назначение деструктурирования;

ary.push({[name]: val});

Однако, учитывая это синтаксис ES6, применяются обычные оговорки; это не будет работать в некоторых браузерах (примечательно, IE и Edge 13)... хотя Babel превзойдет это для вас.


Без ES6 (поддержка старого браузера)...

Вам нужно определить объект и использовать квадратную скобку для установки свойства;

var obj = {};

obj[name] = val;

ary.push(obj);

Если вам нужно больше читать в нем, см. в этой статье о различиях между квадратной скобкой и точечной нотацией.

Ответ 2

var ary = [];

function pushToAry(name, val) {
   var obj = {};
   obj[name] = val;
   ary.push(obj);
}

pushToAry("myName", "myVal");

Если вы только что прочитали свой вопрос, все, что вам нужно, это следующее

$(your collection of form els).serializeArray();

Старый добрый jQuery

Ответ 3

"Ассоциативный массив" - это действительно просто объект. Вы не используете push, вы просто назначаете свойства объекту:

ary[name] = val;