JavaScript是一门Web编程语言,用来实现网页的交互功能,它和HTML、CSS共同组成了个Web开发的基础工具集合,也是前端开发者必备的技能;学习JavaScript教程可以了解它在网页开发中的所有特性和相关概念,让我们能够更加快速的去开发Web应用。
sort()方法用于对数组的元素进行排序。
版本说明
于JavaScript 1.1中实现
语法说明
sort(compareFunction)
执行一下代码说明
compareFunction:该函数用于定义排序顺序。若未指定,数组将按字典顺序而非数值顺序进行排序。例如,在字典排序中"30"会排在"8"之前,而数值排序时8则会排在30之前。
如果提供了 compareFunction,数组元素将根据比较函数的返回值进行排序。若 x 和 y 是被比较的两个元素,则:
如果compareFunction(x, y)返回值小于0,则将y排列在比x更低的索引位置。
如果 compareFunction(x, y) 返回 0,则保持 x 和 y 的相对顺序不变,但会相对于所有不同元素进行排序。
若比较函数compareFunction(x, y)的返回值大于0,则将y排序至比x更高的索引位置。
示例 - 1
在以下网络文档中,sort()方法对字符串、数字及混合类型的数组进行排序操作,涵盖使用及未使用比较函数的情况。
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8" />
<title>JavaScript sort() method example</title>
<style type="text/css">
h1 {color:red}
</style>
</head>
<body>
<h1>JavaScript : sort() method</h1>
<script src="array-sort-example1.js"></script>
</body>
</html>
执行一下JS代码
var stringArray = new Array("79","A","345","Good");
var numberArray = new Array(54,11,3,600);
var mixedArray = new Array("A900","99","67",54,11,3,600);
function compareNumbers(x, y)
{
'use strict';
return x - y;
}
var newParagraph = document.createElement("p");
var newText = document.createTextNode("String Array : " + stringArray);
newParagraph.appendChild(newText);
document.body.appendChild(newParagraph);
var newParagraph1 = document.createElement("p");
var newText1= document.createTextNode("Sorted : " + stringArray.sort());
newParagraph1.appendChild(newText1);
document.body.appendChild(newParagraph1);
var newParagraph2 = document.createElement("p");
var newText2= document.createTextNode("Number Array : " + numberArray.join());
newParagraph2.appendChild(newText2);
document.body.appendChild(newParagraph2);
var newParagraph3 = document.createElement("p");
var newText3 = document.createTextNode("Sorted without a compare function :" + numberArray.sort());
newParagraph3.appendChild(newText3);
document.body.appendChild(newParagraph3);
var newParagraph4 = document.createElement("p");
var newText4 = document.createTextNode("Sorted with compare function : " + numberArray.sort(compareNumbers));
newParagraph4.appendChild(newText4);
document.body.appendChild(newParagraph4);
var newParagraph5 = document.createElement("p");
var newText5 = document.createTextNode("Mixed Array : " + mixedArray);
newParagraph5.appendChild(newText5);
document.body.appendChild(newParagraph5);
var newParagraph = document.createElement("p");
var newText = document.createTextNode("Sorted without a compare function : " + mixedArray.sort() );
newParagraph.appendChild(newText);
document.body.appendChild(newParagraph);
var newParagraph = document.createElement("p");
var newText = document.createTextNode("Sorted with compareNumbers : " + mixedArray.sort(compareNumbers));
newParagraph.appendChild(newText);
document.body.appendChild(newParagraph);
执行一下示例 - 2
在下方网页文档中,sort()方法借助两个函数对包含数值的数组实现升序和降序排序。
HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8" />
<title>JavaScript sort() method example using numeric value</title>
<style type="text/css">
h1 {color:red}
</style>
</head>
<body>
<h1>JavaScript : sort() method using numeric value</h1>
<hr>
<script src="array-sort-example2.js"></script>
</body>
</html>
执行一下JS代码
var numberArray = new Array(54,11,3,600,-100,40,0);
function Ascending(x, y)
{
'use strict';
return x - y;
}
function Descending(x, y)
{
'use strict';
return y - x;
}
var newParagraph = document.createElement("p");
var newText = document.createTextNode("List of the numbers : " + numberArray);
newParagraph.appendChild(newText);
document.body.appendChild(newParagraph);
var newParagraph1 = document.createElement("p");
var newText1 = document.createTextNode("Sorted in Ascending order :" + numberArray.sort(Ascending));
newParagraph1.appendChild(newText1);
document.body.appendChild(newParagraph1);
var newParagraph2 = document.createElement("p");
var newText2 = document.createTextNode("Sorted in Descending order :" + numberArray.sort(Descending));
newParagraph2.appendChild(newText2);
document.body.appendChild(newParagraph2);
执行一下另请参阅:
上一篇:JavaScript splice() 方法:数组对象
下一篇:JavaScript数组对象toSource()方法