JS sort()函数使用总结

srot()如果不带参数,是将按字母顺序对数组中的元素进行排序,也就是是按照字符编码的顺序进行排序。

var arr1 = ['a', 'd', 'c', 'b'];
arr.sort();  //['a', 'b', 'c', 'd']

var arr2 = [10, 5, 40, 25, 100, 1];
arr2.sort(); //[1, 10 ,100, 25, 40, 5]

为sort()中传入排序规则函数可实现自定义排序

排序函数规则:

  1. 传两个形参
  2. 当返回值为正数时,交换传入两形参在数组中位置

排序的内置算法:

JS中sort实现算法居然是O(n^2)的冒泡排序,所以有时候有必要自己实现那些算法,可以参考这个网址胡耀的github/sort

按照数值大小进行排序-升序
arr.sort(function(a,b){
	return a - b;
})
按照数值大小进行排序-降序
arr.sort(function(a,b){
	return b - a;
})
按照数组中对象的某一个属性值进行排序
var arr = [
    {name:'zopp',age:0},
    {name:'gpp',age:18},
    {name:'yjj',age:8}
];
function compare(property){
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value1 - value2;
    }
}
console.log(arr.sort(compare('age')))
让数组乱序
arr.sort(function(a,b){
	return Math.random() - 0.5;
})



  • 15
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: JavaScript 中的 sort 函数用于对数组进行排序。默认情况下,sort 按字典序升序排序数组中的元素。 语法: ``` array.sort() ``` 例子: ``` let fruits = ['apple', 'banana', 'kiwi', 'mango']; fruits.sort(); console.log(fruits); //expected output: Array ["apple", "banana", "kiwi", "mango"] ``` 可以传递一个比较函数来定制如何排序。 语法: ``` array.sort(compareFunction) ``` 例子: ``` let points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); console.log(points); //expected output: Array [1, 5, 10, 25, 40, 100] ``` 请注意,sort() 方法会改变原始数组。 ### 回答2: 在 JavaScript 中,sort() 函数用于对数组元素进行排序。该函数可以按照默认的字母顺序对数组进行排序,也可以使用自定义的排序函数进行排序。 sort() 函数改变原始数组,它不仅会修改数组的顺序,而且直接在原数组上进行操作,不会创建新的数组。 默认情况下,sort() 函数会将数组元素按照字母顺序升序排列。如果数组元素都是字符串类型,那么会按照字母顺序排序;如果数组元素是数字类型,那么会按照数字大小升序排序。 使用 sort() 函数时,你可以传入一个可选的比较函数作为参数,来定义自定义的排序方式。比较函数接受两个参数,分别代表要比较的两个元素,然后根据需要的排序规则返回一个负数、零或正数。 例如,要按照数字大小降序排列一个包含数字的数组,可以这样使用 sort() 函数: ```javascript let numbers = [5, 1, 3, 2, 4]; numbers.sort(function(a, b) { return b - a; }); console.log(numbers); // 输出: [5, 4, 3, 2, 1] ``` 上述的比较函数将两个元素相减,如果结果为负数,则表示 a 小于 b,应该将 a 排在 b 前面,如果结果为正数,则表示 a 大于 b,应该将 a 排在 b 后面,如果结果为零,则表示 a 等于 b,顺序不变。 总结起来,sort() 函数可以按照默认的字母顺序对数组元素进行排序,也可以使用自定义的比较函数进行排序。这个函数JavaScript 数组中非常常用的一个函数,可以帮助我们轻松地对数组进行排序操作。 ### 回答3: JavaScriptsort函数是数组的一个方法,用于对数组元素进行排序。它可以按照默认的字母顺序对元素进行排序,也可以使用一个比较函数自定义排序方式。 sort函数使用方式如下: 1. 使用默认排序方式:sort()函数不传入任何参数时,默认按照数组的元素转化为字符串后的字母顺序进行排序。例如,对于数字数组[5, 2, 9, 1, 3],使用sort()排序后的结果是[1, 2, 3, 5, 9]。 2. 使用比较函数自定义排序:sort()函数可以接受一个比较函数作为参数,此函数用于指定数组元素的比较方式。比较函数需要返回一个负数、0或正数,分别表示第一个参数小于、等于或大于第二个参数。例如,对于数字数组[5, 2, 9, 1, 3],可以编写以下比较函数进行自定义排序: ```javascript function compareNumbers(a, b) { return a - b; } ``` 然后使用sort(compareNumbers)进行排序,将得到[1, 2, 3, 5, 9]。如果要按照降序排序,只需在比较函数内部更改返回值逻辑,即return b - a;。 需要注意的是,sort()函数会直接修改原始数组,而不是创建一个新的排序后的数组。另外,由于默认按照字母顺序排序,对于数字数组需要使用比较函数进行自定义排序。 总之,sort()函数JavaScript中数组的一个排序方法,可以使用默认的字母顺序进行排序,也可以使用比较函数自定义排序方式。通过了解和灵活运用sort()函数,可以对数组进行排序操作。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值