我有一系列數字如下:
const a = ["11-50", "2-10", "1", "51-200"]
我想正確地對它們進行排序
["1", "2-10", "11-50", "51-200"]
我嘗試了這兩種排序方法都無濟于事:
a.sort((a, b) => a - b)
a.sort()
uj5u.com熱心網友回復:
我們可以嘗試對每個范圍內的下限數字進行排序:
const input = ["11-50", "2-10", "1", "51-200"];
input.sort(function(a, b) {
return parseInt(a.split("-")[0]) - parseInt(b.split("-")[0]);
});
console.log(input);
uj5u.com熱心網友回復:
免責宣告:parseInt可能并不總是做你想做的事,但在這個例子中它應該可以作業!
a.sort((a, b) => parseInt(a) - parseInt(b));
uj5u.com熱心網友回復:
You could match numbers and if two numbers are available, take it for an adjusted sort.
Try this snippet-
a = ["11-50", "2-10", "1", "51-200"]
a.sort(function (a, b) {
function getV(v) { return v.match(/\d /g); }
var aa = getV(a),
bb = getV(b);
return aa[0] - bb[0] || (aa[1] || aa[0]) - (bb[1] || bb[0]);
});
console.log(a)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/451264.html
標籤:javascript
