将对象与数组组合为数组列表

时间:2018-02-19 07:10:26

标签: javascript

我有一个对象

var a ={
demo:[1,2,3],
demo1:[test1,test2,test3]
}`

我想将上面的对象转换为对象数组

var a = [{"demo":"1", "demo1":"test1"},{"demo":"2", "demo1":"test2"},{"demo":"3", "demo1":"test3"}];`

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

使用Array#map函数迭代第一个数组demo,然后使用第一个项目的索引访问demo1相应项目。

const a = {
   demo: [1, 2, 3],
   demo1: ['test1', 'test2', 'test3']
};

const mapped = a.demo.map((item, index) => ({ demo: item, demo1: a.demo1[index] }));

console.log(mapped);

答案 1 :(得分:0)

您可以使用array#reduce遍历数组并使用Object#keys(),您可以获取每个对象的键,然后遍历每个键并添加到累加器对象。

var a = [{"demo":"1", "demo1":"test1"},{"demo":"2", "demo1":"test2"},{"demo":"3", "demo1":"test3"}],
  result = a.reduce((r,o) => {
    Object.keys(o).forEach(k => {
      r[k] = r[k] || [];
      r[k].push(o[k]);
    });
    return r;
  },{});
console.log(result);