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数组排序