У меня есть объект вроде
{ labels: ["city A", "city B"], data: ["Abc", "Bcd"] };
Я хочу преобразовать объект выше, как показано ниже, массив json
[
{ labels: "city A", data: "Abc" },
{ labels: "city B", data: "Bcd" },
];
Вы можете добиться этого примерно так:
const original = {
labels: ['city A', 'city B'],
data: ['Abc', 'Bcd']
};
let merged = [];
const keys = Object.keys(original);
for (let idx = 0; idx < keys.length; idx++) {
const entry = Object.assign.apply({},
keys.map((key) => ({
[key]: original[key][idx]
}))
);
merged.push(entry);
}
console.info(merged);
хотите объединить как [ { "labels": "город A", "data:"Abc" }, { "labels":"city B", "data:"Bcd" } ]
@samir проверь сейчас ?
Почему original
представляет собой массив объектов, состоящий только из одного элемента?
@HarunYilmaz Вот в чем был вопрос.
@Joel, кажется, вопрос заключается в преобразовании объекта в массив, а не массива в массив.
@HarunYilmaz Не уверен, что понимаю, что вы имеете в виду. Вы имеете в виду «не массив объектов», а скорее простой объект для массива объектов?
@ Джоэл, твой код работает нормально. Вам просто нужно установить original = {...}
вместо original = [{...}]
, чтобы сделать его объектом, а не массивом с 1 элементом.
@HarunYilmaz Да, это тоже обновлено ?.
Как это дает желаемый результат? Нет даже двух входных объектов.