我有一个对象
var a ={
demo:[1,2,3],
demo1:[test1,test2,test3]
}`
我想将上面的对象转换为对象数组
var a = [{"demo":"1", "demo1":"test1"},{"demo":"2", "demo1":"test2"},{"demo":"3", "demo1":"test3"}];`
任何人都可以帮忙吗?
答案 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);