javascript:对数字、字符串和对象阵列的多种排序方法介绍及实例

323 阅读2分钟

在本教程中,我们将讲解数字、字符串和对象阵列的多种排序方法。

在javascript中对数字进行反向排序

让我们声明一个数字数组

let array = [9, 2, 1, 5, 6, 0];
console.log(array);

array.sort()方法将数组按升序排序

arrayNumbers = array1.sort();
console.log(arrayNumbers)

输出结果是

[ 0, 1, 2, 5, 6, 9 ]

让我们以相反的顺序对数字进行排序,即降序。

let arrayNumbers = array1.sort(function(a, b) {
    return b - a;
});
console.log(arrayNumbers)

输出结果是

[ 9, 6, 5, 2, 1, 0 ]

Es6(ECMAScript2015) 中,同样的内容可以用箭头函数重写如下

对数组进行升序排序的代码是

array.sort((first, second) => first - second); 

用以下方法对数组进行降序排序

array.sort((first, second) => second- first);

在JavaScript中对数字进行反向排序

假设stringArray是用字符串声明的。

let stringArray = ["B", "A", "Z", "Y"];

对这个数字进行升序排序是非常容易的,排序接受两个参数的回调。

let resultArray = stringArray.sort(function(first, second) {
    return first > second ? 1 : -1;

});
console.log(resultArray)

而输出结果是

[ 'A', 'B', 'Y', 'Z' ]

使用ES6语法,使用数组函数,同样可以重写如下

let resultArray = stringArray.sort((first, second) =>{
     first > second ? 1 : -1;

});

**字符串数组按降序排序 **如下

let resultArray = stringArray.sort((first, second) =>{
     first > second ? -1 : 1;
});

对象数组按字符串属性排序

例如,一个数组声明有三个对象。

let objectArray = [{
        id: 1,
        name: 'john'
    },
    {
        id: 3,
        name: 'Eric'
    },
    {
        id: 6,
        name: 'Franc'
    }
];

在这个例子中,我们要对数组中的对象按名称字符串属性进行排序。

let resultArray = objectArray.sort((first, second) => (first.name > second.name) ? 1 : ((second.name > first.name) ? -1 : 0));
console.log(resultArray);

输出结果是

[ { id: 3, name: 'Eric' },
  { id: 6, name: 'Franc' },
  { id: 1, name: 'john' } ]

总结

在这篇文章中,你学会了如何对以下不同类型的数组进行排序

  • 数字数组
  • 字符串数组
  • 具有多个属性的对象数组

我希望你通过这篇文章学到了新的东西。