重塑/取消激活对象的javascript数组

重塑/取消激活对象的javascript数组,javascript,object,Javascript,Object,我有一个集群,我正在查询库 数据以对象数组的形式检索。一切都很好,但现在我必须对这些数据进行重塑,以便在我的表格中有更好的可视化效果 这是我的阵列: var x_start=[ {拆分:“否”,c1:345,c2:763,c3:12}, {拆分:'是',c1:293,c2:1283,c3:46}, ]; x_start将始终有两个具有相同关键点的对象 这就是我想要实现的目标: var x_目标=[ {群集:“c1”,编号:345,是:293}, {集群:'c2',编号:763,是:1283},

我有一个集群,我正在查询库

数据以对象数组的形式检索。一切都很好,但现在我必须对这些数据进行重塑,以便在我的表格中有更好的可视化效果

这是我的阵列:

var x_start=[
{拆分:“否”,c1:345,c2:763,c3:12},
{拆分:'是',c1:293,c2:1283,c3:46},
];
x_start将始终有两个具有相同关键点的对象

这就是我想要实现的目标:

var x_目标=[
{群集:“c1”,编号:345,是:293},
{集群:'c2',编号:763,是:1283},
{群集:'c3',编号:12,是:46},
];
我做了一些研究,我知道最好的解决方案可能是使用
map
组合来访问对象,然后对其进行重塑,但我很难找到正确的方法来实现这一点


有什么建议吗?

如果
x_start
只有2个对象,并且
no
中的c1,c2..cn的数量等于
yes

const no_arr = Object.entries(x_start[0]);

const yes_arr = Object.entries(x_start[1]);

const x_target = [];

for (let i = 1; i < no_arr.length; i++) {
    x_target.push({
      'cluster': no_arr[i][0],
      'no': no_arr[i][1],
      'yes': yes_arr[i][1]
    })
}
const no_arr=Object.entries(x_start[0]);
const yes_arr=Object.entries(x_start[1]);
常数x_目标=[];
for(设i=1;i
您可以尝试使用和)来解决您的问题。您可以签出以下解决方案

var x_start=[{
分裂:“不”,
c1:345,
c2:763,
c3:12
},
{
斯普利特:“是的”,
c1:293,
c2:1283,
c3:46
},
];
常数减速机=(acc,x)=>{
const findorad=key=>{
让item=acc.find(v=>v.cluster==key);
如果(项目)返回项目;
项目={
集群:密钥
};
acc.push(项目);
退货项目;
}
Object.keys(x).filter(key=>key!=='split')
.forEach(键=>{
const item=findorad(键);
项目[x.分割]=x[键];
});
返回acc;
}
var x_target=x_start.reduce(reducer,[]);
console.log(x_目标)