W3CAPI 在线教程 | 菜鸟教程_LOGO
文档目录
文档目录
我的书签
 

JavaScript

JavaScript 入门教程

JavaScript是一门Web编程语言,用来实现网页的交互功能,它和HTML、CSS共同组成了个Web开发的基础工具集合,也是前端开发者必备的技能;学习JavaScript教程可以了解它在网页开发中的所有特性和相关概念,让我们能够更加快速的去开发Web应用。

W3CAPI
1
2020-06-18 07:05:48

sort

JavaScript sort() 方法:数组对象

详细说明

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 核心对象、方法及属性。

上一篇:JavaScript splice() 方法:数组对象
下一篇:JavaScript数组对象toSource()方法

相关提问
敬请期待