JavaScript 数组排序方法
阅读:72
点赞:0
在JavaScript中,对数字数组进行排序可以通过多种方法实现。排序的目的是将数组中的元素按照特定的顺序排列,如升序或降序。本文将介绍两种主要的排序方法:使用循环和使用 sort()
方法。
一. 使用循环排序数组
方法概述
这是最简单的排序方法,通过嵌套循环比较数组中的每一对元素。这个方法的时间复杂度为 O(N^2),空间复杂度为 O(1)。
示例代码
以下是使用嵌套循环对数组进行升序排序的示例代码:
<!DOCTYPE html>
<html>
<body>
<h2>使用 JavaScript 排序数字数组</h2>
<p>输入数组元素:</p>
<input type="number" id="inp1" placeholder="数字值"><br><br>
<p id="prev">数组的初始顺序:</p>
<button id="add" onclick="setValues()">将元素推入数组</button>
<button id="btn" onclick="sortElement()">点击排序数组</button>
<p id="result"></p>
<script>
var result = document.getElementById("result");
var prev = document.getElementById("prev");
var myArr = [];
function setValues() {
var inp1 = document.getElementById("inp1");
var val1 = inp1.value;
var num = Number(val1);
myArr.push(num);
inp1.value = "";
}
function sortElement() {
var n = myArr.length;
if (n == 0) {
result.innerHTML = "<b>数组为空,请先添加元素。</b>";
} else {
prev.innerHTML += "<b>[ " + myArr + " ]</b>";
for (var i = 0; i < n; i++) {
for (var j = i + 1; j < n; j++) {
if (myArr[j] < myArr[i]) {
// 交换元素
var a = myArr[i];
myArr[i] = myArr[j];
myArr[j] = a;
}
}
}
result.innerHTML = "数组已按升序排序,排序后的数组为:<b>[ " + myArr + " ]</b>";
}
}
</script>
</body>
</html>
运行结果
该代码在网页上显示了一个数组排序工具,用户可以输入数字并点击按钮进行排序。排序采用了嵌套循环方法。
二. 使用 sort()
方法排序数组
方法概述
sort()
方法是JavaScript内置的数组排序函数。默认情况下,sort()
方法将数组元素视为字符串进行排序,可能导致不符合预期的结果。为了正确排序数值数组,需要使用比较函数。
示例代码
以下是使用 sort()
方法及其比较函数对数组进行升序排序的示例代码:
<!DOCTYPE html>
<html>
<body>
<h2>使用 JavaScript 排序数字数组</h2>
<p>输入数组元素:</p>
<input type="number" id="inp1" placeholder="数字值"><br><br>
<p id="prev">数组的初始顺序:</p>
<button id="add" onclick="setValues()">将元素推入数组</button>
<button id="btn" onclick="sortElement()">点击排序数组</button>
<p id="result"></p>
<script>
var result = document.getElementById("result");
var prev = document.getElementById("prev");
var myArr = [];
function setValues() {
var inp1 = document.getElementById("inp1");
var val1 = inp1.value;
var num = Number(val1);
myArr.push(num);
inp1.value = "";
}
function sortElement() {
function cmp(a, b) {
return a - b; // 比较函数:升序排序
}
var n = myArr.length;
if (n == 0) {
result.innerHTML = "<b>数组为空,请先添加元素。</b>";
} else {
prev.innerHTML += "<b>[ " + myArr + " ]</b>";
myArr.sort(cmp);
result.innerHTML = "数组已按升序排序,排序后的数组为:<b>[ " + myArr + " ]</b>";
}
}
</script>
</body>
</html>
运行结果
此代码使用 sort()
方法及其比较函数对数组进行排序,用户可以通过点击按钮查看排序结果。
三.总结
本文介绍了两种在JavaScript中对数值数组进行排序的方法:使用循环和使用 sort()
方法。前者适合学习和理解排序算法的基本原理,而后者则是实际开发中更常用的方法。选择适当的方法取决于具体的应用场景和性能要求。