#javascript #object
Вопрос:
У меня есть следующий объект JSON, и я хотел бы преобразовать его в объект Javascript.
let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"},
{"agreg": "First", "colunm": "qtd_if", "label": "Type 2"},
{"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
Я хотел бы поместить некоторые ключи/значения в объект Javascript, подобный этому:
let disVars = {'var_pj' : 'Count([',
'qtd_if' : 'First([',
'qtd_ag_if': 'Sum([' };
Я попытался использовать следующий код:
let disVars = data.map(function(item){
let col = item.colunm.toString();
let agr = item.agreg.toString();
return col ': ' agr '([';
});
Но результат для console.log(disVars) таков:
"var_pj: Count([",
"qtd_if : First([",
"qtd_ag_if: Sum(["
Комментарии:
1. Ты сначала погуглил?
JSON.parse
2. это потому, что вы смешали строку с объектом. Объект является javascript, и вы возвращаете/создаете только строку
3. Нет такого понятия, как «Объект JSON».
4. Спасибо вам, ребята. Решение, приведенное ниже, сделало свое дело!
Ответ №1:
Вот рабочее решение вашей проблемы. Я использовал Object.fromEntries
функцию для преобразования массива ключ-значение в объект JS.
let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"},
{"agreg": "First", "colunm": "qtd_if", "label": "Type 2"},
{"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
let result = Object.fromEntries(data.map(item => [
item.colunm, item.agreg '(['
]));
console.log(result);
Если вам нужны максимальные возможности браузера, вы также можете использовать приведенный ниже код. Код не использует Object.fromEntries
API. Вместо этого я создал пустой объект и зациклил данные, а затем добавил к объекту новые свойства.
let data = [{"agreg": "Count", "colunm": "var_pj", "label": "Type 1"},
{"agreg": "First", "colunm": "qtd_if", "label": "Type 2"},
{"agreg": "Sum", "colunm": "qtd_ag_if","label": "Type 3"}];
let result = new Object();
for (var item of data) {
result[item.colunm] = item.agreg '([';
}
console.log(result);