在本教程中,我们将讲解数字、字符串和对象阵列的多种排序方法。
在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' } ]
总结
在这篇文章中,你学会了如何对以下不同类型的数组进行排序
- 数字数组
- 字符串数组
- 具有多个属性的对象数组
我希望你通过这篇文章学到了新的东西。