找出解决方案花了我太长时间。
我有以下对象
p{
1: "a"
2: "aa"
}
p1 {
1: "b"
2: "bb"
}
p3 {
1: "c"
2: "cc"
}
我有一个数组parr。我希望将与索引匹配的对象的值推送到数组中......就像下面的格式
一样parr: Array[2]
0: object
outputone : "a"
outputtwo : "b"
outputthree: "c"
1: object
outputone : "aa"
outputtwo : "bb"
outputthree: "cc"
任何帮助将不胜感激
答案 0 :(得分:0)
您可以使用数据透视算法来更改对象的顺序
function pivot(object) {
return Object.keys(object).reduce(function (r, k) {
Object.keys(object[k]).forEach(function (kk, i) {
r[i] = r[i] || {};
r[i][k] = object[k][kk];
});
return r;
}, []);
}
var object = { p: { 1: "a", 2: "aa" }, p1: { 1: "b", 2: "bb" }, p3: { 1: "c", 2: "cc" } },
result = pivot(object);
console.log(result);

与自定义键相同
function pivot(object, keys) {
return Object.keys(object).reduce(function (r, k, j) {
Object.keys(object[k]).forEach(function (kk, i) {
r[i] = r[i] || {};
r[i][keys[j]] = object[k][kk];
});
return r;
}, []);
}
var object = { p: { 1: "a", 2: "aa" }, p1: { 1: "b", 2: "bb" }, p3: { 1: "c", 2: "cc" } },
result = pivot(object, ['outputone', 'outputtwo', 'outputthree']);
console.log(result);