需要帮助编写函数来对数组对象进行排序

时间:2017-01-21 16:52:09

标签: javascript arrays function sorting

我要做的是对一个只包含数组属性的对象进行排序。我试图根据数组的长度对它进行排序。我试图这样做的原因是我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);

}

1 个答案:

答案 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