在JavaScript中把数组转换成Set类型的教程及实例

283 阅读2分钟

在这篇文章中,我将在博客中举几个例子,演示如何在JavaScript中把带有简单、对象的数组转换成Set类型。

数组包含了JavaScript中任何有效类型的数据。数据可以是原始类型或任何类型的对象
Set是ES6中引入的一种新的数据结构,它包含一个唯一的元素集合。请看更多关于set数据类型的信息
两者都是不同的类型。我们必须写一段代码,将一种类型转换为另一种类型。
在我的上一篇文章中,了解了如何在JavaScript中把Set对象转换为Array

如何将数组中的原始数字或字符串转换成Set?

Set构造函数使用new Set(array)语法接受数组的值。使用new操作符创建一个Set数据 下面是一个解析数字数组的例子,转换为数据集。

var myArray = [21, 3, 10];  
var mySet = new Set(myArray);  
console.log(mySet.size === myArray.length); //true  
console.log(myArray); //[ 21, 3, 10 ]  
console.log(mySet); //Set { 21, 3, 10 }  

Set不允许重复的元素。如果数组包含重复的值,Set只存储唯一的值。下面的例子在转换后数组和集合类型相等时返回false。

var myArray = [21, 3, 10,21];  
var mySet = new Set(myArray);  
console.log(mySet.size === myArray.length); //false  
console.log(myArray);//[ 21, 3, 10,21 ]  
console.log(mySet);//Set { 21, 3, 10 }  

将数组中的对象转移到集合的键和值

数组也包含对象,每个对象都包含键和值,让我们看看将普通对象的数组转移到键和值的集合的例子。 数组的map函数会迭代每个元素并将元素添加到数组中,最后将新的数组返回给set构造函数。

let employees = [{ "id": 1, "name": "kiran" }, {  
    "id": 2,  
    "name": "franc"  
}]  
let idsSet = new Set(employees.map(element => element.id));  
let namesSet = new Set(employees.map(element => element.name));  

输出是

Set { 1, 2 }  
Set { 'kiran', 'franc' }