JavaScript 如何对Set进行排序

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 }

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程