在这篇文章中,我将在博客中举几个例子,演示如何在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' }