JavaScript排序 JavaScript数组方法 JavaScript布尔 sort() 方法是最强大的数组方法之一. 排序数组 sort() 方法按照字母顺序对数组排序: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Sorts the elements of fruits 让我试试 反转数组 reverse() 方法反转数组中的元素。. 可以使用它按降序排序数组: var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // Sorts the elements of fruits fruits.reverse(); // Reverses the order of the elements 让我试试 数字排序 默认, sort() 函数按字符串值排序. 这适用于字符串 ("Apple" comes before "Banana"). 然而,如果数字被排序为字符串,“25”大于“100”,因为“2”大于“1”. 因为这样, sort() 排序数字时会产生不正确的结果. 您可以通过提供比较函数来修复此问题: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); 让我试试 使用同样的技巧来降序排序数组: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); 让我试试 Compare 函数 比较函数的目的是定义另一种排序顺序. 根据输入的参数,比较函数应返回一个负,零或正值: function(a, b){return a-b} 当sort() 函数比较两个值,它将值发送给比较函数,并根据返回的(负值,零,正)值对值进行排序. 例如: 当比较 40 和 100时, sort()方法调用比较函数 function(40,100). 该函数计算40-100,并返回-60(负值). 排序函数将排序40低于100. 您可以使用此代码段试验数值,按字母顺序排序: <button onclick="myFunction1()">Sort Alphabetically</button> <button onclick="myFunction2()">Sort Numerically</button> <p id="demo"></p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script> 让我试试 随机排序数组 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()}); 让我试试 找到最高(或最低)值 如何找到数组中的最高值? var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // now points[0] contains the highest value 让我试试 和最低: var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // now points[0] contains the lowest value 让我试试 对象数组排序 JavaScript数组通常包含对象: var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}]; 即使对象具有不同数据类型的属性, sort() 方法可以用来对数组进行排序. 该解决方案是编写一个比较函数来比较属性值: cars.sort(function(a, b){return a.year - b.year}); 让我试试 比较字符串属性有点复杂: cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; }); 让我试试 JavaScript数组方法 JavaScript布尔