如何在 JavaScript 中排序集合?
集合也是一種資料結構,它與對映資料結構非常相似。它們之間唯一的區別在於,對映以鍵值對的形式儲存元素,而集合則只儲存單個值,順序與插入順序相同。它也可以像對映一樣儲存原始資料型別以及物件。
集合包含所有元素,順序與插入順序相同。但是,我們可以使用 JavaScript 的sort()方法按元素的升序或降序對集合進行排序,該方法通常用於按特定順序對陣列進行排序。
在本文中,我們將學習如何使用 sort() 方法在 JavaScript 中對集合進行排序。
讓我們首先看看如何在 JavaScript 中建立一個集合。
語法
按照以下語法在 JavaScript 中建立集合:
var set_name = new Set();
我們可以使用集合的add()方法將新元素插入或新增到集合中。
步驟
步驟 1 - 在第一步中,我們將向文件中新增一個輸入元素,以便逐個從使用者獲取輸入元素。
步驟 2 - 在下一步中,我們將新增三個按鈕元素,每個元素都關聯 onclick 事件。第一個按鈕將把輸入的元素新增到集合中,第二個按鈕將清除集合中的所有元素,第三個按鈕將對集合的元素進行排序,並顯示元素之前的順序和排序後的順序。
步驟 3 - 在第三步中,我們將定義三個具有不同功能的不同函式,並根據它們的功能將它們分配給上一步中定義的按鈕的 onclick 事件。
步驟 4 - 在最後一步中,我們將編寫上一步中定義的三個函式的程式碼,以便在 JavaScript 中新增、清除和排序集合的元素。
讓我們實際運用 sort() 方法來按特定順序對集合的元素進行排序。
示例
下面的示例將向您解釋如何使用 sort() 方法按升序對集合的元素進行排序:
<!DOCTYPE html>
<html>
<body>
<h2>Sorting a set in JavaScript</h2>
<p>Enter a number to insert into set:</p>
<input type = "number" id = "inp1"><br><br>
<button id = "add" onclick = "setAdd()"> Add Item to set</button>
<button id = "clear" onclick = "clearSet()"> Clear the set</button>
<button id = "btn" onclick = "setSort()">click to sort</button>
<p id = "prev">The initial order of values in set is:</p>
<p id = "result">The final sorted order of values in set is:</p>
<script>
var result = document.getElementById("result");
var prev = document.getElementById("prev");
var mySet = new Set();
function setAdd() {
var inp1 = document.getElementById("inp1");
var val1 = inp1.value;
var num1 = Number(val1);
mySet.add(num1);
inp1.value = " ";
}
function clearSet() {
mySet.clear();
}
function setSort() {
var tempArr = [];
for (var item of mySet) {
tempArr.push(item);
}
tempArr.sort();
for (var item of mySet) {
prev.innerHTML += " <b> " + item + " </b> ";
}
mySet.clear();
for (var item of tempArr) {
mySet.add(item);
}
for (var item of mySet) {
result.innerHTML += " <b> " + item + " </b> ";
}
}
</script>
</body>
</html>
在上面的示例中,我們使用了 sort() 方法,藉助陣列(正如我們在解決此問題的方法中所討論的)按升序對集合的元素進行排序。
讓我們再看一個程式碼示例,我們將按降序對集合的元素進行排序。
方法
前面示例和本示例的方法相同。您只需要編寫一個cmp函式並將其傳遞給sort()方法,使其按給定順序對專案進行排序。cmp函式由下面的程式碼示例解釋,我們將使用它來按降序對專案進行排序。
示例
下面的示例將演示如何使用帶 cmp 函式的 sort() 方法來定義排序順序:
<!DOCTYPE html>
<html>
<body>
<h2>Sort a set in JavaScript</h2>
<p>Enter a number to insert into set:</p>
<input type = "number" id = "inp1"> <br> <br>
<button id = "add" onclick = "setAdd()">Add Item to set</button>
<button id = "clear" onclick = "clearSet()">Clear the set</button>
<button id = "btn" onclick = "setSort()">click to sort</button>
<p id = "prev">The initial order of values in set is:</p>
<p id = "result">The final sorted order of values in set is:</p>
<script>
var result = document.getElementById("result");
var prev = document.getElementById("prev");
var mySet = new Set();
function setAdd() {
var inp1 = document.getElementById("inp1");
var val1 = inp1.value;
var num1 = Number(val1);
mySet.add(num1);
inp1.value = " ";
}
function clearSet() {
mySet.clear();
}
function setSort() {
var tempArr = [];
for (var item of mySet) {
tempArr.push(item);
}
function cmp(a, b) {
return b - a;
}
tempArr.sort(cmp);
for (var item of mySet) {
prev.innerHTML += " <b> " + item + " </b> ";
}
mySet.clear();
for (var item of tempArr) {
mySet.add(item);
}
for (var item of mySet) {
result.innerHTML += " <b> " + item + " </b> ";
}
}
</script>
</body>
</html>
在這個例子中,我們使用 sort() 方法,透過使用 cmp 函式指定排序順序,按降序對集合的元素進行排序。
結論
在本文中,我們學習了在 JavaScript 中使用 sort() 方法以不同順序對集合的專案進行排序的不同方法。我們還看到了兩個不同的 JavaScript 程式碼示例,第一個示例按升序對專案進行排序,第二個示例透過使用 cmp 函式為 sort() 方法提供排序順序,按降序對元素進行排序。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP