javascript排序错误用法的一个例子

javascript排序错误用法的一个例子
我的同事最近编出来了一个很神奇的程序,一般的过程是对数组中的对象进行排序,把一个属性进行排序,把B属性作为首选条件,当B等于1时,不管A的值是多少,都排在一开始。这是一个很简单的问题。问题是,他用两次排序来实现它,首先根据A的属性进行排序,然后根据B的值进行排序。

我们认为,最有可能它实际上并没有在第一的排名发生,根据一个数组按降序属性在我们第二次不只要对线阵列的原始顺序移动(通常在方法返回0或1),只考虑单独的B等1前面提到过的元素。但事实上,这是由语言的相关排序算法的选择。Javascript(和其他语言)内置排序方法采用了几种排序算法集合。有时,它不能保证同一个元素的位置是一致的。

这是StackOverflow例

复制代码代码如下所示:

无功arraytosort = {

{姓名:'a',强度:1 },{姓名:B,强度:1 },{姓名:C,强度:1 }。

{姓名:e、强度:1 },{姓名:F,强度:1 },{姓名:一,强度:1 }。

{姓名:'i',强度:1 },{姓名:J,强度:1 },{名称:k,强度:1 }。

{姓名:是的,强度:1 },{名称:n,强度:1 },{名称:O,强度:1 }。

{姓名:Q,强度:1 },{姓名:R,强度:1 },{姓名:是的,强度:1 }。

};

ArrayToSort.sort(功能(A,B){

返回b.strength - a.strength;

});

ArrayToSort.forEach(功能(元){)

console.log(元素名称);

});
我们将假定最后一个元素的值是从a到t,但实际操作结果是无序的。这是因为排序算法不能保持原始数组的顺序,即不稳定。

我们应该尽量避免这种情况发生。对于我的同事来说,一次合并两种排序逻辑是可行的方法。如果必须将其划分为多个排序,则应将原始数组的顺序记录在元素的属性上。

tag:排序错误例子电脑软件Javascript

相关内容