gpt4 book ai didi

javascript - 使用多个小数点对 'numbers' 进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 04:05:22 26 4
gpt4 key购买 nike

我有一堆有多个小数点的“数字”(所以它们实际上是字符串)。但是,我想对它们进行排序,就好像它们是数字一样。

1.1.1
10.2.3
2.6.7
21.10.4
3.10.12
4.11.5
4.1.16
6.4.23

我希望他们按第一组数字(第一个小数点之前)排序,然后按第二组数字排序,然后按第三组数字排序(可能会持续第四组或更多)。他们应该按以下顺序进行:

1.1.1
2.6.7
3.10.12
4.1.16
4.11.5
6.4.23
10.2.3
21.10.4

使用 JS 执行此操作的最佳方法是什么?我在想我可能需要将每个数字分解成一个数组,但也许有更好的方法。想法?

最佳答案

我认为像这样的东西应该可以解决问题:

nums.sort(function(a, b) {
var nums1 = a.split(".");
var nums2 = b.split(".");

for (var i = 0; i < nums1.length; i++) {
if (nums2[i]) { // assuming 5..2 is invalid
if (nums1[i] !== nums2[i]) {
return nums1[i] - nums2[i];
} // else continue
} else {
return 1; // no second number in b
}
}
return -1; // was missing case b.len > a.len
});

更新heres a fiddle

var nums = ['1.1.1',
'2.6.7.3.2',
'2.6.7',
'2.6.7.3',
'2.6.7.1',
'6.4.23',
'2.7']

这样排序 => ['1.1.1','2.6.7.1','2.6.7.3.2','2.6.7','2.6.7.3','2.7','6.4 .23']

关于javascript - 使用多个小数点对 'numbers' 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com