[英]Algorithm to sort an array in javascript
我很难找到解决方案。
我有一个与此类似的数组。
// Original array
const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"];
// The sorted array needs to be like this.
sorted_array = ["1", "1A", "01A", "2", "02B", "03B", "10"];
我曾尝试编写这样的自定义排序函数,但找不到解决方案。 我很感激任何帮助。
const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"];
const sorted_array = orig_array.sort((a, b) => {
if (a - b) {
return a - b;
}
if (a.localeCompare(b) === -1) {
return a.length - b.length;
} else {
return 1;
}
});
console.log(sorted_array);
您可以先将parseInt
应用于两个字符串以获取第一个数字部分并减去它们。 如果数字部分相等,则减去长度。
const orig_array = ["2", "10", "01A", "1A", "02B", "1","03B"]; console.log(orig_array.sort((a,b)=>parseInt(a)-parseInt(b)||a.length-b.length));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.