Reputation: 6147
Say i have an object like this..
const obj = {
streaming_tile_x: 608,
streaming_tile_z: 608,
global_total_mesh_count: 9776,
global_total_asset_count: 17831,
global_total_texture_count: 64055,
global_total_entity_count: 0,
global_total_shader_count: 9776,
}
How can i convert it to an array of objects like this...
const results = [
{
name: "streaming_tile_x",
value: 608
},
{
name: "streaming_tile_z",
value: 608
},
{
name: "global_total_mesh_count",
value: 9776
},
{
name: "global_total_asset_count",
value: 17831
},
{
name: "global_total_texture_count",
value: 64055
},
{
name: "global_total_entity_count",
value: 0
},
{
name: "global_total_shader_count",
value: 9776
},
]
Upvotes: 1
Views: 987
Reputation: 17566
First catch the object keys then iterate over there.
obj = {
streaming_tile_x: 608,
streaming_tile_z: 608,
global_total_mesh_count: 9776,
global_total_asset_count: 17831,
global_total_texture_count: 64055,
global_total_entity_count: 0,
global_total_shader_count: 9776,
}
n = Object.keys(obj).map((o) => {
return {
name: o,
value: obj[o]
}
})
console.log('n', n);
Upvotes: 0
Reputation: 759
You can use a simple for in
loop to make this new array
const obj = {
streaming_tile_x: 608,
streaming_tile_z: 608,
global_total_mesh_count: 9776,
global_total_asset_count: 17831,
global_total_texture_count: 64055,
global_total_entity_count: 0,
global_total_shader_count: 9776,
}
let array = []
for (let object in obj) {
array.push({
name: object,
value: obj[object]
})
}
console.log(array)
Upvotes: 0
Reputation: 97152
Use Object.entries()
with map()
and array destructuring:
const obj = {
streaming_tile_x: 608,
streaming_tile_z: 608,
global_total_mesh_count: 9776,
global_total_asset_count: 17831,
global_total_texture_count: 64055,
global_total_entity_count: 0,
global_total_shader_count: 9776,
};
const result = Object.entries(obj).map(([name, value]) => ({name, value}));
console.log(result);
Upvotes: 1