【发布时间】:2022-11-03 15:42:24
【问题描述】:
我有以下对象:
const obj = {
A: [{
capacity: 100
}, {
capacity: 100
}, {
capacity: 100
}],
B: [{
capacity: 500
}, {
capacity: 500
}, {
capacity: 500
}],
C: [{
capacity: 300
}, {
capacity: 300
}, {
capacity: 300
}]
}
我需要转换为具有相同形状但键按容量排序的对象。需要注意的是,数组(A、B、C)中每个对象的容量在同一个对象内总是相同的。所以我们可以以第一次出现为例
预期结果:
const obj = {
A: [{
capacity: 100
}, {
capacity: 100
}, {
capacity: 100
}],
C: [{
capacity: 300
}, {
capacity: 300
}, {
capacity: 300
}],
B: [{
capacity: 500
}, {
capacity: 500
}, {
capacity: 500
}]
}
我的方法都没有奏效。一个例子:
const sortByPosition = obj => {
const order = [], res = {};
Object.keys(obj).forEach(key => {
return order[obj[key][1]['capacity'] - 1] = key;
});
order.forEach(key => {
res[key] = obj[key];
});
return res;
}
console.log(sortByPosition(obj));
这是fiddle
【问题讨论】:
标签: javascript arrays object functional-programming javascript-objects