📅  最后修改于: 2023-12-03 15:32:23.319000             🧑  作者: Mango
在 Javascript 中,排序数组可以通过内置的 sort()
函数进行。该函数根据指定的排序规则,对数组进行升序或降序排列。
sort()
函数可以作用于数组对象,并且不需要传递任何参数。
var arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arr.sort();
console.log(arr); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
上述代码将数组 arr
进行升序排列,并使用 console.log()
输出排列后的结果。
如果想要自定义排序规则,可以在 sort()
函数中传递一个函数作为参数。该函数接收两个参数,分别是当前比较的两个元素。
var arr = ["dog", "apple", "cat", "banana", "zebra"];
arr.sort(function(a, b) {
return a.localeCompare(b);
});
console.log(arr); // ["apple", "banana", "cat", "dog", "zebra"]
上述代码使用 localeCompare()
函数比较元素的字典序,实现了对数组的升序排列。
在排序数组中,元素的比较顺序是字符串顺序,而不是数字顺序。因此,如果数组的元素为字符串类型,那么排序结果可能并不是预期的。
如果需要对数字类型的数组进行排序,可以使用以下方法:
var arr = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
arr.sort(function(a, b) {
return a - b;
});
console.log(arr); // [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
上述代码使用 a - b
的比较方式,实现了对数字数组的升序排列。
如果在排序时需要修改数组中的元素,建议先将数组拷贝一份并进行排序操作,以免破坏原始数据。