我有一个数组,我需要按降序对它进行排序,但它似乎不起作用。我可以解决什么问题?
var array = [];
array['a'] = ['1','2','3'];
array['b'] = ['2','3'];
array['c'] = ['5','6','8','9'];
array.sort(function(a, b) {
return a.length < b.length ? -1 : (a.length > b.length ? 1 : 0);
});
console.log(array);
最佳答案
What could I fix?
您的数组为空,因为它没有数字键。因此,排序不会执行任何操作,在记录时您会看到数组中的非数字键。
<小时/>由于您想要快速查找,您需要一个哈希表(对象或映射),但是它们没有排序,因此您还需要一个数组来排序。您可以轻松地为您的数据构建两者:
const lookup = {
a: [ '1','2','3'],
b: ['2','3'],
c: ['5','6','8','9'],
};
const sorted = Object.values(lookup).sort((a, b) => a.length - b.length);
console.log(
lookup["a"],
sorted[0]
);
关于javascript - 在 JavaScript 中对数组进行排序 : items with most elements in descending order,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54501741/