Динамически добавлять объект в массиве JavaScript

javascript arrays json javascript-objects

2292 просмотра

1 ответ

У меня есть JSON:

var obj = '{"Form":[],"Provider":[]}';

Я помещаю данные со значением переменной для создания динамических объектов:

var pName = 'Tester';
var data = {
    pName :["testing"]
};
console.log(obj['Provider'].push(data));

Но это добавляет pName в качестве имени переменной, а не значение переменной, то есть Tester , я попытался с + pName +, который также не работает.

Возвращает:

{"Form":[],"Provider":[{"pName":["Testing"]}]}

Любая помощь будет оценена.

Автор: websterz Источник Размещён: 08.11.2019 11:03

Ответы (1)


2 плюса

Решение

Вы должны использовать []синтаксис рядом с именем свойства. Он будет вычислять выражение в []и возвращает значение.

Смотрите пример. Вот data'sсвойство с именем 'Tester'.

var obj = {"Form":[],"Provider":[]};

var pName = 'Tester';
var data = {
    [pName] :["testing"]
};

console.log(data.pName); // undefined
console.log(data.Tester); // OK

obj['Provider'].push(data);

console.log(obj);

Автор: Suren Srapyan Размещён: 20.08.2016 08:26
Вопросы из категории :
32x32