Добавить динамический ключ, пары значений в массив JavaScript или хеш-таблицу
Я пытаюсь добавить пару ключевых значений в существующий ассоциативный массив javascript. Ключ должен быть переменной. Это для кодирования JSON. Я понимаю, что для этого есть много плагинов и фреймворков, но я хочу простой ответ.
ary.push({name: val});
где ary
- новый массив, name
- это переменная, содержащая ключ, val
- значение этой записи.
Я делаю это в цикле jQuery
, который выполняет итерацию через поля формы.
Ответы
Ответ 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;