繁体   English   中英

如何将包含多个数组的对象转换为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM