arr.sort()
默认情况下,sort()会按照升序重新排列数组元素,即最小的值在前面,最大的值在后面。为此,sort()会在每一项上调用String()转型函数,然后比较字符串来决定顺序。即使数组元素都是数值,也会先把数组转换为字符串再比较、排序。
let arr = [0, 1, 5, 10, 15]
arr.sort()
console.log(arr)//[ 0, 1, 10, 15, 5 ]
sort()排列数值方法
let arr = [3, 2, 1, 5, 10, 15]
arr.sort(function (value1, value2) {
if (value1 < value2) {
return -1
} else if (value1 > value2) {
return 1
} else {
return 0
}
})
console.log(arr)//[ 1, 2, 3, 5, 10, 15 ]
// 简写形式
arr = [3, 2, 1, 5, 10, 15]
arr.sort((a, b) => a < b ? -1 : a > b ? 1 : 0)
console.log(arr)//[ 1, 2, 3, 5, 10, 15 ]
// 如果数组元素全为数值,则可以进一步简写
arr = [3, 2, 1, 5, 10, 15]
arr.sort(function (value1, value2) {
return value1 - value2
})
console.log(arr)//[ 1, 2, 3, 5, 10, 15 ]
// 反向排列
arr = [3, 2, 1, 5, 10, 15]
arr.sort(function (value1, value2) {
if (value1 < value2) {
return 1
} else if (value1 > value2) {
return -1
} else {
return 0
}
})
console.log(arr)//[ 15, 10, 5, 3, 2, 1 ]