JavaScript数组排序sort()方法

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();            // 对 fruits 中的元素进行排序

默认地,sort() 函数根据字符串Unicode码。

该函数很适合字符串("Apple" 会排在 "Banana" 之前)。

不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。

正因如此,sort() 方法在对数值排序时会产生不正确的结果。

比较数值可以通过比值函数

比较函数的目的是定义另一种排序顺序。

比较函数应该返回一个负,零或正值,这取决于参数

升序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});

降序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});

以随机顺序排序

var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()}); 

对复杂数组, 根据数组元素里的某个属性排序

var sourceList = [{
        bscore: 222,
        name: '哈哈'
    },
    {
        bscore: 34,
        name: '哈哈'
    },
    {
        bscore: 465,
        name: '哈哈'
    },
    {
        bscore: 67,
        name: '哈哈'
    },
    {
        bscore: 243,
        name: '哈哈'
    },
    {
        bscore: 135,
        name: '哈哈'
    }
]
sourceList.sort((a, b) => {
    return a.bscore - b.bscore
})

猜你喜欢

转载自www.cnblogs.com/---godzilla---/p/11528571.html