【发布时间】:2017-12-21 14:15:24
【问题描述】:
假设我有一个这样的数组:
let arr = ["1.2.5", "1", "10", "2.0.4", "3.3.3.3"];
对此进行排序并获得如下结果的最佳方法是什么:
let arr = ["1", "1.2.5", "2.0.4", "3.3.3.3", "10"];
首先我想将数组中的每个项目转换为“浮点数”可能会起作用,但随后多个小数不会给出预期的结果。
我也可以进行for 循环并执行item.split(".") 之类的操作,然后一一检查,但我认为这不是最好的方法。
有什么建议吗?
【问题讨论】:
-
3.3.3.3 是一个数字吗?不对吧?
-
是的,我知道,但我不知道我还叫什么来解释我期望的结果。不过我希望你能明白我的意思。
-
2.0.4 与其他数字不同,因此不能像数字那样排序。
-
好的,我想要的不是“像数字一样排序”,而是排序。请让我知道我是否可以重写我的问题以便更好地解释。
-
您可以尝试按第一个数字排序。
arr.sort(function(a,b){ return a.split('.')[0] - b.split('.')[0]; });
标签: javascript arrays performance sorting