【发布时间】:2021-08-08 12:22:36
【问题描述】:
我想用字符串和数字对数组进行排序。
var toSort = ['100', 'Calc', '30', '43', '52', '16', '10', '11', '12', 'Calc', '2', 'N/A', '8'];
预期的行为是当对字符串进行排序时,将在两种状态(asc 和 desc)的列表末尾排序,例如: 升序:
['2','8','10','11','12','16','30','43','52','100','Calc','Calc','N/A']
描述:
['100','52','43','30','16','12','11','10','8','2','Calc','Calc','N/A']
我有它用于 asc 状态:
toSort.sort(function (a,b) {
if (a === 'Calc') return 1;
else if (a === 'N/A') return 1;
else return a.localeCompare(b, undefined, { numeric: true});
});
console.log(toSort);
关于 desc 状态的任何想法? tnx
【问题讨论】:
-
到目前为止,您尝试了哪些方法来自行解决此问题? -> How much research effort is expected of Stack Overflow users?
-
在similar question中调整尼克的答案(使“数字”成为实际数字)
标签: javascript arrays sorting