JavaScript 排序导致的错误

标题有点low,因为他们通常会用xxx引发的血案来命名。哈哈~1千600个瞧不起。自己选择的路,不管有多长也要跪完。背景:单台设备信息上架录入系统的时候不允许保存不连续的U位信息。因此,需要一个严格验证表单是U位信息是否连续的功能(放在前端,保证后台收到的表单数据U位永远都是连续,另外,前端直接提示,方便用户直接更正)。

机柜(Rack)U位:1U = 1.75英寸(4.445cm)它是通常用来衡量一个设备的高度。有1U、2U等等常见设备。对于录入一台设备,在前端而言U位是一个数字数组。那么,需要做的就是对一组数字数组进行排序。首先会想到sort函数。没错,也确实用它了。但就是因为不太了解它,导致了例如下面这种错误:

var units = [8,9,10,21] 
units.sort();
//js sort 排序的实际结果是:
[10, 21, 8, 9]
下面是JavaScript sort()方法的解析:

下面是w3school.com.cn查阅的结果,可以直接使用了。

最终的整理结果:

调用时执行: checkRunning(getUnits()); 即可,返回true表示连续,返回false表示不连续,不需要打印对应的数组数据,可以优化执行速度。

发布者

酷特尔

你不改变,时间又能为你做些什么?

发表评论

电子邮件地址不会被公开。 必填项已用*标注