项目中遇到要给数组去重的,不想一一循环,就用了new Set()方法:在JavaScript中,Set
对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。然而,Set
对象本身并不是一个数组,而是一个集合。所以想要将Set()之后的伪数组转为真数组,可以用扩张运算符(...)这个方法相信是大家经常用的,但其实还有一个方法:Array.from()它是数组新增的方法;
使用扩张运算符(...)
// 创建一个Set
let mySet = new Set([1, 2, 2, 3, 4, 4, 5]);
// 使用扩展运算符将Set转换为数组
let myArray = [...mySet];
console.log(myArray); // 输出: [1, 2, 3, 4, 5]
使用Array.from()
// 创建一个Set
let mySet = new Set([1, 2, 2, 3, 4, 4, 5]);
// 使用Array.from()将Set转换为数组
let myArray = Array.from(mySet);
console.log(myArray); // 输出: [1, 2, 3, 4, 5]
两种方法都能有效地将 Set
对象中的唯一值转换成一个真正的数组。扩展运算符是一种语法糖,使得转换过程更加简洁;而 Array.from()
方法则提供了一种更通用、更灵活的方式来从类数组对象或可迭代对象中创建一个新的数组实例。
在实际开发中,你可以根据自己的喜好和具体场景选择使用哪种方法。