[英]How to convert an object to array of multiple objects in javascript
[英]How to convert the object which contains multiple array into an array of objects in javascript?
下面的对象应该被转换成一个对象数组。 这只是一个随机的问题陈述。 如何将其转换为对象数组? 请帮忙。
// input
objects={
0:[1,2,3],
1:["a","b","c"],
2:["i","ii","iii"]
}
//expected output
objects2=[
{0:1,1:"a",2:"i"},
{0:2,1:"b",2:"ii"},
{0:3,1:"c",2:"iii"}
]
下面的代码只给了我最后一个条目的意思是[3,"c","iii"]
//tried solution
var res=[]
Object.keys(objects).forEach(k=>{
// console.log(data[k])
objects[k].forEach(element => {
res[k]=element
console.log(res)
});
})
试试下面的代码。
let objects = { 0: [1, 2, 3], 1: ["a", "b", "c"], 2: ["i", "ii", "iii"] }; let objects2 = []; //Fill the array with empty objects for (object in objects) { objects2.push({}); } //Fill the objects for (const object in objects) { const values = objects[object]; for (let i = 0; i < values.length; i++) { objects2[i][object] = values[i]; } } console.log(objects2);
尝试以下代码以功能方式执行此操作。
let objects = { 0: [1, 2, 3], 1: ["a", "b", "c"], 2: ["i", "ii", "iii"] }; function extend(obj, k, v) { if (!(k in obj)) obj[k] = []; obj[k].push(v); return obj; } let result = Object.keys(objects). map(k => objects[k].map(v => [k, v])). // convert to [key, value] pairs reduce((lst, elm) => lst.concat(elm)). // flatten reduce((obj,[k, v]) => extend(obj, k, v), {}); // convert to objects console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.