JS数组排序函数简介()
排序()方法用于对数组的元素进行排序:
ArrayObject.sort(sortBy)
返回值是数组的引用。请注意,数组是在原始数组上排序的,不生成副本。
如果不使用参数调用方法,则按字母顺序对元素排序,更精确的点是按字符编码顺序排序。要做到这一点,首先应将数组元素转换成字符串(必要时)进行比较。
如果要按其他标准排序,则需要提供比较函数,比较两个值,然后返回一个数字来说明两个值的相对顺序:
如果A小于B,a应该出现在排序数组中的B之前,并且返回小于0的值。
如果A等于B,则返回0。
如果A大于B,则返回大于0的值。
函数的NumAscSort(A,B)
{
返回一个B;
}
函数的NumDescSort(A,B)
{
返回一个;
}
var arr =新的数组(3600, 5010, 10100,801);
Arr.sort(numdescsort);
警报(ARR);
Arr.sort(numascsort);
警报(ARR);
排序(乐趣)接受一个排序规则函数,比较2个数字的大小。实际上,我们的对象数组排序是相同的。
如果它没有比较大小的数字,它可以是这样的:
VaR MyArray = {苹果
Myarray.sort()
数组直接调用排序(),数组按字母顺序排列元素。更精确的点是根据字符编码顺序进行排序。
对于对象数组排序,我们首先编写一个构造比较函数的函数:
函数通过接受成员名称字符串作为参数。
返回a可以用来比较排序的功能,数组中包含成员的对象。
var =函数(名称){
返回函数(o,p){
var,b;
如果(typeof O =对象、对象O P = P){
a = o名称};
b = { };
如果(a = b){
返回0;
}
如果(typeof a、b){
返回一个B - 1:1;
}
返回类型的一组类型的B - 1:1;
}
{其他
抛出(错误);
}
}
}
要排序的数组:
var employees = { }
雇员{ 0 } =名称:乔治
雇员{ 1 } =名称:爱德华
雇员{ 2 } =姓名:
雇员{ 3 } =名称:莎拉
直接调用函数:
Employees.sort(由(年龄));
在这种情况下,基本上实现了对象数组。如何排序多个键值这意味着先将年龄排序,如果年龄相同,则比较姓名。
这时,我们可以进一步修改按次函数,所以它可以接受第二个参数,当主关键字生成匹配时,另一个比较方法将被调用来解决它。
函数的作用是:接受成员名称字符串和可选的二级比较函数作为参数。
返回a可用于包含对象数组的排序比较函数的成员。
当年龄}和年龄相等时,使用二次比较函数进行战斗。
var =函数(名称,次要){
返回函数(o,p){
var,b;
如果(O P型o'object'typeof P = = = = 'object){
a = o名称};
b = { };
如果(a = b){
返回类型minor'function'minor(O,P = 0);
}
如果(typeof a、b){
返回一个;
}
返回类型的一组类型的B - 1:1;
其他{ }
通过(错误);
}
}
}
Employees.sort(由(年龄,由('name')));
好的,现在你可以放心地使用它了。如果你不理解它,你可以直接用函数把它拷贝到你的应用程序中,你可以直接调用它。