我要做的是对一个只包含数组属性的对象进行排序。我试图根据数组的长度对它进行排序。我试图这样做的原因是我Object.keys()将以正确的顺序提供所有名称的列表。这是我的代码:(我知道它的错误,我不能因为某些原因而想到,但这是我的尝试。)
function sortSetsByAmount(SETS, callback) {
let n = {};
for (let i = Object.keys(SETS) - 1; i >= 0; i--) {
let biggestSets = [];
for (let j = Object.keys(SETS); j >= 0; j--) {
if (SETS[Object.keys(SETS)[i]].length > biggestSets.length) {
biggestSets = SETS[Object.keys(SETS)[i]];
}
if (j == -1) {
n[Object.keys(SETS)[i]] == biggestSets;
}
}
}
callback(n);
}
答案 0 :(得分:0)
总之,您可以浅层克隆将原始对象转换为具有已排序键的新对象:
Object.keys(SETS) // key array of the original object
.sort((k1, k2) => SETS[k1].length - SETS[k2].length) // sort the keys compared by SETS[key] length
.reduce((cloneObj, k) => ({...cloneObj, k: SETS[k]}), {}) // shallow clone to a new object