Sort number part of a string?
本问题已经有最佳答案,请猛点这里访问。
我们有一堆
abc.def1.<someNumber>
我有一个
1 | let rows = someItems.sort((lhs, rhs) => lhs.someId > rhs.someId) |
这几乎只是按字母顺序排序,因此这意味着该顺序有点奇怪:
1 2 3 4 5 | abc.def1.1 abc.def1.1234 abc.def1.1235 abc.def1.2 abc.def1.234 |
我反而希望对它进行数字排序-像1,2,234,1234等。
什么是干净的方法?
您可以将
1 2 3 4 5 6 7 | var array = ['abc.def1.1', 'abc.def1.1234', 'abc.def1.1235', 'abc.def1.2', 'abc.def1.234']; array.sort(function (a,b) { return a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }); }); console.log(array); |