У меня есть объект, подобный приведенному ниже.
var data = {data1:"test",data2:"test2"}
Как я могу преобразовать это в следующий объект?
[{data1:"test"},{data2:"test2"}]



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать Object.entries() с array#map для создания массива объектов из вашего объекта.
const data = { data1:"test", data2:"test2" },
result = Object.entries(data).map(([key, value]) => ({[key]: value}));
console.info(result);.as-console-wrapper { max-height: 100% !important; top: 0; }Объекты JavaScript - это словари, вы можете использовать Object.keys, чтобы поместить имена свойств объекта в массив, а затем сопоставить каждый элемент массива с новым объектом следующим образом:
var result = Object.keys(data).map(k => ({ [k]: data[k] }));
Object.keys(data) возвращает ключи в объекте как [data1, data2 ]. map перебирает массив, а также возвращает массив. здесь k - ключ от [data1, data2 ]. затем в карте он подготовил { [k]: data[k] }, который добавляется в массив и будет возвращен картой.
Пояснение добавлено, спасибо
for...in тоже работает, но да, я определенно рекомендую использовать более «родные» способы итерации по объектам.
Старый школьный путь:
const data = {data1:"test",data2:"test2"};
let result = [];
for(let key in data){
result.push({[key]: data[key]});
}
console.info(result);Новый способ (используйте Object.Keys, как указано в другом ответе. Он отличается специально для поощрения уникальности. Для более «компактного» и «ресурсоэффективного» кода используйте другой ответ, упомянутый Алексом Переверзьевым):
const data = { data1:"test", data2:"test2" }
const result = [];
//This returns the keys of data ("data1", "data2"). Then use bracket notation to find the value in the object (data["data1"]):
Object.keys(data).forEach(key => {
//Push into the array the name of the key along with its value
result.push({[key]: data[key]})
});
console.info(result);Обратите внимание, что есть много способов сделать это, я упомянул лишь некоторые из них.
Добавьте пояснение, пожалуйста.