在对象数组中使用数字和字符串进行排序

Sorting with Number and Strings in array of objects

我有这样的数组:

array =[{limit:50}, {limit:40}, {limit:10},{limit:'unlimited'}]

如何对该数组进行排序,以便在无限升序时位于最后一个索引,而在无限降序时位于顶部索引。

最简单的可能是使用“标准”numerical sort 进行升序,当您需要降序时,只需将 .reverse() 作为额外操作应用到它即可:

let array =[{limit:50}, {limit:40}, {limit:10},{limit:'unlimited'}];

array.sort((a,b) => a.limit - b.limit);

console.log(array);

array.reverse();

console.log(array);

最简单直接的方法就是使用sortreverse

的内置函数Array

如果您需要升序:

let array =[{limit:50}, {limit:40}, {limit:10},{limit:'unlimited'}]
array.sort((a,b) => a.limit - b.limit);

如果您需要降序:

let array =[{limit:50}, {limit:40}, {limit:10},{limit:'unlimited'}]
array.sort((a,b) => a.limit - b.limit);
array.reverse();