19、JavaScript 数组排序
19.1 数组排序:sort()
sort()
方法以字母顺序对数组进行排序:
<p id="demo"></p>
<script>
var cars01 = ["Apple", "City", "Dog", "Bad"];
document.getElementById('demo').innerHTML = cars01.sort();;
</script>
运行效果:Apple,Bad,City,Dog
19.2 反转数组:reverse()
(1)数组反转:
<p id="demo"></p>
<script>
var cars01 = ["Apple", "City", "Dog", "Bad"];
document.getElementById('demo').innerHTML = cars01.reverse();;
</script>
运行效果:Bad,Dog,City,Apple
(2)您可以使用它以降序对数组进行排序:
<p id="demo"></p>
<script>
var cars01 = ["Apple", "City", "Dog", "Bad"];
document.getElementById('demo').innerHTML = cars01.sort().reverse();
</script>
运行效果:Dog,City,Bad,Apple
19.3 比值函数
比较函数的目的是定义另一种排序顺序。
比较函数应该返回一个负,零或正值,这取决于参数:
function(a, b){return a-b}
当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。
19.4 数字排序
默认地,sort()
函数按照字符串顺序对值进行排序。
该函数很适合字符串(“Apple
” 会排在 “Banana
” 之前)。
不过,如果数字按照字符串来排序,则 “25” 大于 “100”,因为 “2” 大于 “1”。
正因如此,sort()
方法在对数值排序时会产生不正确的结果。
我们通过一个比值函数来修正此问题:
(1)sort()
实现数字升序:
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
var nums=[40,5,10,20,100,1];
document.getElementById('demo').innerHTML = nums;
function myFunction() {
nums.sort(function(a,b){
return a-b});
document.getElementById('demo').innerHTML =nums;
}
</script>
</body>
运行效果:1,5,10,20,40,100
(2)sort()
实现数字降序:
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
var nums=[40,5,10,20,100,1];
document.getElementById('demo').innerHTML = nums;
function myFunction() {
nums.sort(function(a,b){
return b-a});
document.getElementById('demo').innerHTML =nums;
}
</script>
</body>
运行效果:100,40,20,10,5,1
19.5 以随机顺序排序数组
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
var nums=[40,5,10