javascript数组排序详细解决方案

如果你接触Javascript很长一段时间,你必须知道数组排序的排序功能,排序是一种阵列的原型,即(阵列。原型。排序),排序(comparefunction),在comparefunction是一个函数,我们看看下面的MDN从Mozilla的部分描述:

如果没有提供comparefunction,元素将它们转换为字符串和字符串的比较在字典序排序(字典或电话簿,不为数值)。例如80前9的字典顺序,但在数字排序9在80的前面。

下面是一些简单的例子:

复制代码代码如下所示:

输出{ 1, 2, 3 }

console.log({ 3, 2, 1 }。排序());

输出

console.log({C

输出 { 1, 2,

console.log({B





从上面可以看出,缺省是根据字母词典来排序的。

幸运的是,排序接受一个自定义比较函数,如下所示:

复制代码代码如下所示:

功能comparefunction(A,B){

如果((b){){

返回- 1;

}如果(b){

返回1;

{ }人

返回0;

}

}

/ /输出{zuojj

console.log({本杰明





我们也有一个关于如何控制升序和降序的问题。

复制代码代码如下所示:

功能comparefunction(旗){

标志=标志;

返回函数(a,b){

如果((b){){

回旗=降序- 1:1;

}如果(b){

回旗=降序:1 - 1;

{ }人

返回0;

}

};

}

输出 1

console.log({本杰明

/ /输出{zuojj

console.log({本杰明



这是comparfunction排序规则:

1如果返回一个负数,a将被排序为a。

2如果返回一个正数,a将被排序为a。

3,如果返回0,则不需要排序。

让我们看一看一款Mozilla MDN。

排序方法在Javascript 1.1和Javascript 1.2之间的行为发生了变化。为了解释这个描述,让我们看一个例子:

在Javascript 1.1中,在某些平台上,排序方法不起作用。这

在Javascript 1.2中,该方法不再将未定义的元素转换为null,而元素的细节在这里戳。

复制代码代码如下所示:

var arr = { };

ARR { 0 } =蚂蚁;

ARR { 5 } =斑马;

输出

console.log(ARR);

输出6

console.log(arr.length);

输出斑马

console.log(arr.join(*));

排序

无功sortarr = arr.sort();

输出

console.log(sortarr);

输出6

console.log(sortarr。长度);



console.log(sortarr.join(*));





我希望这种学习和理解的排序()方法对你有帮助,错也希望批评。

参考链接:http:/ /开发商Mozilla。org / / / zh CN文件 / /网页Javascript参考 / / / global_objects数组排序