Преобразование свойств объекта в массив объектов
Я получаю вывод, который выглядит так:
{'1536135941922': 'true',
'1536135962942': 'false',
'1536135986966': 'false',
'1536135989968': 'true'}
и мне нужно, чтобы это выглядело так:
[{'1536135941922': 'true'},
{'1536135962942': 'false'},
{'1536135986966': 'false'},
{'1536135989968': 'true'}]
Так что мой фронт может это поглотить. Как я могу это преобразовать?
4 ответа
Ты можешь использовать Object.entries()
а также .map()
Способы получения желаемого результата:
let data = {
'1536135941922': 'true',
'1536135962942': 'false',
'1536135986966': 'false',
'1536135989968': 'true'
};
let result = Object.entries(data).map(( [k, v] ) => ({ [k]: v }));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
Вы можете отобразить записи объекта, используя новые объекты.
Методы:
Object.entries
Array#map
var object = { '1536135941922': 'true', '1536135962942': 'false', '1536135986966': 'false', '1536135989968': 'true' },
array = Object.entries(object).map(([k, v]) => ({ [k]: v }));
console.log(array);
Это однострочник с Object.entries
а также Array.map
:
const data = {'1536135941922': 'true',
'1536135962942': 'false',
'1536135986966': 'false',
'1536135989968': 'true'};
const convert = (object) => Object.entries(data).map(([key, value]) => ({ [key]: value }));
console.log(convert(data));
Какая у вас бэкэнд-установка? Я принимал Node, так как вы пометили Javascript.
Если вы используете PHP, вы можете создать объект для объекта и поместить их в массив. После этого вы можете преобразовать объект массива в json с помощью json_encode
функции и вернуть его на фронт.