提问者:小点点

将具有相同长度列表属性的对象转换为JavaScript中的对象列表?


我有一个这种格式的对象。 每个键都是相同长度的列表:

myobj = {
    'key1' : [1, 2, 3],
    'key2' : ['a', 'b', 'c'],
    'key3' : [true, false, true],
    ...,
    'keyN' : ['length', 'of', 'three'],
}

我需要将此对象转换为“较小”对象的列表,这样最终列表中位置为I的对象将具有每个初始列表的各自值(带有索引I)。 因此,这将是上述目标的结果:

[
    {
        'key1' : 1,
        'key2' : 'a',
        'key3' : true,
        ...,
        'keyN' : 'length'
    },
    {
        'key1' : 2,
        'key2' : 'b',
        'key3' : false,
        ...,
        'keyN' : 'of'
    },
    {
        'key1' : 3,
        'key2' : 'c',
        'key3' : true,
        ...,
        'keyN' : 'three'
    }
]

共1个答案

匿名用户

不知道你到现在都尝试了些什么。 你可以试试下面这样的方法。

null

var a = {'key1' : [1, 2, 3],
    'key2' : ['a', 'b', 'c'],
    'key3' : [true, false, true]}

var result = []

Object.keys(a).map(key => {
  a[key].forEach((item, index) =>  result[index] ? result[index][key] = item :      result[index] = {[key]: item})
  }
 )
 
 console.log(result)