Javascript 将具有多个数组的对象转换为对象数组

Javascript 将具有多个数组的对象转换为对象数组,javascript,arrays,object,Javascript,Arrays,Object,我从API中获取的数据经常出现问题: 这是返回数据的方式,数组的数量不同 const objData = { arr1: [1,2,3], arr2: [1,2,1], arr3: [2,1,2], arr4: ["a","b", "c"] } 这是它应该看起来的样子 const desired = [ {a: 1, b: 1, c: 2, d: "a"}, {a:

我从API中获取的数据经常出现问题:

这是返回数据的方式,数组的数量不同

const objData = {
    arr1: [1,2,3],
    arr2: [1,2,1],
    arr3: [2,1,2],
    arr4: ["a","b", "c"]
}
这是它应该看起来的样子

const desired = [
    {a: 1, b: 1, c: 2, d: "a"},
    {a: 2, b: 2, c: 1, d: "b"},
    {a: 2, b: 1, c: 2, d: "c"}
]
这给了我期望的结果,但它不是动态的,因为我必须提供数组的名称,并且不允许更改对象中的数组数量

const DataObj = []

for (let i = 0; i < objData.arr1.length; i++) {
    const objX = {
        a: objData.arr1[i],
        b: objData.arr2[i],
        c: objData.arr3[i],
        d: objData.arr4[i],
    }
    DataObj.push(objX)
}
const DataObj=[]
for(设i=0;i

有人能帮我解决这个问题吗?如何使其独立于阵列名称和数据集中的阵列数量?

您可以使用新对象映射阵列

const
objData={arr1:[1,2,3],arr2:[1,2,3],arr3:[2,1,2],arr4:[“a”,“b”,“c”]},
键={arr1:'a',arr2:'b',arr3:'c',arr4:'d'},
结果=对象
.条目(objData)
.reduce((r[key,array])=>array.map((v,i)=>({…r[i],[key[key]]:v})),[]);
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
非函数方法,使用整数获取字母

const objData={
arr1:[1,2,3,5],
arr2:[1,2,1,4],
arr3:[2,1,2,3],
arr4:[“a”、“b”、“c”、“d”]
}
const len=Object.values(objData)[0]。长度;
设cnt=97;
设newObj={};
常量列表=[];
for(设i=0;iconsole.log(list)
是否需要
正确?如何确定{a:1,b:1,c:2,d:“a”}的键,如a,b,c和d。有什么逻辑吗?非常确定第二行应该是[2,2,1,“b”]你是对的,没有看到这个。