Javascript中的排序数组:按降序排列大多数元素的项

Javascript中的排序数组:按降序排列大多数元素的项,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个数组,我需要按desc顺序对它进行排序,但它似乎不起作用。我能修什么 var数组=[]; 数组['a']=['1','2','3']; 数组['b']=['2','3']; 数组['c']=['5','6','8','9']; array.sort(函数(a,b){ 返回a.lengthb.length-1:0); }); console.log(数组) 我能修什么 数组为空,因为它没有数字键。因此,在记录日志时,对其进行排序不会产生任何作用,您会在数组中看到非数字键 当您想要快速查

我有一个数组,我需要按desc顺序对它进行排序,但它似乎不起作用。我能修什么

var数组=[];
数组['a']=['1','2','3'];
数组['b']=['2','3'];
数组['c']=['5','6','8','9'];
array.sort(函数(a,b){
返回a.lengthb.length-1:0);
});
console.log(数组)
我能修什么

数组为空,因为它没有数字键。因此,在记录日志时,对其进行排序不会产生任何作用,您会在数组中看到非数字键


当您想要快速查找时,您需要一个哈希表(对象或映射),但是,它们没有排序,因此您还需要一个数组来具有排序顺序。您可以轻松地为您的数据构建以下两个方面:

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]
);

数组['a']
??数组应该有数字标记JavaScript中的数组不能有字符串键。JavaScript不是PHP。您可以使用对象
{}
,但它们不可排序。数组可以有键,因为它们是对象,但不建议使用它们。在我的代码中,它可以有字符串键。我使用它们可以更快地查找正确的数组,就像使用数组一样,我只需进入
array[whatimlooking]
就可以得到值,而无需遍历对象。“它起作用”不是一个有效的解释,因为javascript中有很多奇怪的东西在起作用(比如:
[]+{}=={}+[
)。使用此代码,您或某个不幸的灵魂一定会在以后遇到问题。如果希望使用括号表示法访问器:
{“a”:['1','2','3'],“b”:['2','3']},则可以创建一个对象,每个键都指向一个数组,如下所示