语法:arrayobject.sort(sortBy);
参数sortBy可选。规定秩序。它必须是一个
函数。
排序()
方法用于对数组元素进行排序。
如果不使用参数调用该方法,则将按字母
顺序对元素排序,更精确的点是按字符编码顺序进行排序,
首先,数组的元素应该被
转换成字符串(必要时)进行比较。
如果要按其他标准排序,则需要提供比较函数,比较两个值,然后返回一个数字来说明这两个值的相对顺序。
比较函数应该有两个参数a和b,返回值如下所示:
如果A小于B,a应该出现在排序数组中的B之前,并且返回小于0的值。
如果A等于B,则返回0。
如果A大于B,则返回大于0的值。
用js中的排序()方法对数字排序
var arr = { 23,12,134116,8,18,37,56,50 };
警报(arr.sort();
返回:{ 1, 116, 12,18, 23, 34,37, 50, 56,8 }
上面的代码没有根据数值的大小对数字排序。要实现这一点,必须使用排序函数:
var arr = { 23,12,134116,8,18,37,56,50 };
函数序列(a,b){
如果((b){){
返回1;
}如果(b){
返回1
其他{ }
返回0;
}
}
console.log(arr.sort(序));
返回:{ 1, 8, 12,18, 23, 34,37, 50, 56,116 }(无问题)
当然,您也可以在排序()方法中编写排序函数:
var arr = { 23,12,134116,8,18,37,56,50 };
VaR arr2 = arr.sort(
功能(A,B){
如果((b){){
返回1;
}如果(b){
返回1
其他{ }
返回0;
}
})
console.log(arr2);
返回:{ 1, 8, 12,18, 23, 34,37, 50, 56和116 }(没问题)
它也可以简化成这样一种写作方式。
因为如果A小于B,a应该出现在排序数组的B之前,并且返回小于0的值。
如果A等于B,则返回0。
如果A大于B,则返回大于0的值。
var arr = { 23,12,134116,8,18,37,56,50 };
函数序列(a,b){
返回一个B;
}
console.log(arr.sort(序));
返回:{ 1, 8, 12,18, 23, 34,37, 50, 56和116 }(和右边)。
按字母顺序排列要简单得多,排序()方法可以直接确定。
Var arr = {'fanda','banner','find','zoom','index','width','javascript'};
console.log(arr.sort());
返回:{横幅
现在在Javascript的研究,排序()函数是一个有点奇怪的东西(也许是我的水平_ --!)这里是你
发现的记录。排序()方法的参数非常奇怪。它们必须是函数,但它们是可选参数。如果没有参数,
默认情况下它们将按字典顺序排列,甚至数值也会被转换成字符串。这个参数可以比较两个值的大小,例如:
复制代码代码如下所示:
功能sortnumber(A,B){
返回一个B,返回这里是它们的差异,如果值小于0,它将是前排的A,如果超过0,它将是前排的B,如果是0个单词,就是。(冒泡排序)!!)
}
应用程序如下(这个例子太经典了!):
功能sortnumber(A,B){ return - b }
var arr =新阵(3)
ARR { 0 } =10;
ARR { 1 } =5;
ARR { 2 } =4;
document.write(ARR + );
document.write(arr.sort(sortnumber));
因此,原10,5,4安排将成为4,5,10 ..下面是对这个过程的描述。显然,sortnumber应该有两个参数,但是当我们调用它,没有一个参数。我们怎么比较呢这是箱子。当ARR从第一呼叫号码排序,有10号和第二之间没有比较,这是5,当10将与5相比,然后sortnumber将被调用,10和5也将被引入,这是排序的
属性()。