JavaScript 如何对Set进行排序
在本文中,我们将看到如何根据元素的值对Set进行排序。实现这一目标的一种方式是使用内置的sort()函数。但是,sort()函数不能直接应用在set上,而是:
- 我们将使用存储在set中的元素生成一个数组容器。
- 然后,在数组上执行sort()函数。
- 我们将清除整个set,并将存储在新排序数组中的元素存储回set中。
由于set按照插入顺序返回元素,整个set现在将被排序。
以下是我们可以对set进行排序的方法:
- 通过迭代set。
- 使用Array.from()方法。
- 使用扩展运算符和set()构造函数。
方法1. 通过迭代set
在这种方法中,我们将手动迭代set,并将set的元素插入一个新数组中,该数组将根据我们的需要进行排序。
语法:
# myset is the set under consideration for this article
let myarr = [];
for (let element of myset) {
// Set elements pushed into the array
myarr.push(element);
}
# myArray consists of the elements of the set
myArray.sort()
示例:
JavaScript
// Initialize a Set object
// using Set() constructor
let myset = new Set()
// Insert new elements in the
// set using add() method
myset.add(3);
myset.add(2);
myset.add(9);
myset.add(6);
// Print the values stored in set
console.log(myset);
// Create a new array to store set elements
let myarr = [];
for (let element of myset) {
// Set elements pushed into the array
myarr.push(element);
}
// Print the values stored in Array
console.log(myarr);
// Sort the array (default it will sort
// elements in ascending order)
myarr.sort()
// Clear the entire set using clear() method
myset.clear()
for (let element of myarr) {
// Array elements pushed into the set
myset.add(element);
}
// Print the values stored in set
console.log(myset);
输出
Set(4) { 3, 2, 9, 6 }
[ 3, 2, 9, 6 ]
Set(4) { 2, 3, 6, 9 }
方法2. 使用Array.from()方法
生成数组的一种方法是使用内置的Array.from()方法,它会将集合的元素创建一个数组。了解更多关于该方法的信息,请点击此链接。
语法:
# myset is the set under consideration for this article
myArray = Array.from(myset)
myArray.sort()
示例:
JavaScript
// Initialize a Set object
// using Set() constructor
let myset = new Set()
// Insert new elements in the
// set using add() method
myset.add(3);
myset.add(2);
myset.add(9);
myset.add(6);
// Print the values stored in set
console.log(myset);
// Create a new array to store set elements
let myarr = [];
myArray = Array.from(myset)
myArray.sort()
console.log(myArray)
myset.clear()
myset = new Set(myArray);
console.log(myset)
输出
Set(4) { 3, 2, 9, 6 }
[ 2, 3, 6, 9 ]
Set(4) { 2, 3, 6, 9 }
方法3:使用扩展运算符和排序方法
在这个方法中,我们将使用扩展语法将集合转换为数组,然后使用排序函数对集合进行排序。
示例:
Javascript
// Initialize a Set object
// using Set() constructor
let myset = new Set()
// Insert new elements in the
// set using add() method
myset.add(3);
myset.add(2);
myset.add(9);
myset.add(6);
// Print the values stored in set
console.log(myset);
const sortedArray = [...myset].sort();
const newSet = new Set(sortedArray);
console.log(newSet);
输出
Set(4) { 3, 2, 9, 6 }
Set(4) { 2, 3, 6, 9 }