Set简介
Set
是ES6中新的对象,今日偶然接触,发现利用它可以迅速为数组去重,只需要两行代码!
集合(Set)对象允许你存储任意类型的唯一值(不能重复),无论它是原始值或者是对象引用。
使用示例
var mySet = new Set();
mySet.add(1);
mySet.add(5);
mySet.add("some text");
mySet.has(1); // true
mySet.has(3); // false, 3还没有被添加到set中
mySet.has(5); // true
mySet.has(Math.sqrt(25)); // true
mySet.has("Some Text".toLowerCase()); // true
mySet.size; // 3
mySet.delete(5); // 从set中移除5
mySet.has(5); // false, 5已经被移除
mySet.size; // 2, 我们刚刚移除了一个值
简单来说,Set
于Array
的区别在于:Array
中允许出现重复的元素,例如[1,2,2,3]
;而Set
中的所有元素都是唯一的,只能是{1,2,3}
。利用这一特性,我们就可以迅速地去掉数组中重复的元素。
数组去重
废话不多说,直接看代码:
var arr = [1,2,2,3,4] // 需要去重的数组
var set = new Set(arr) // {1,2,3,4}
var newArr = Array.from(set) // 再把set转变成array
console.log(newArr) // [1,2,3,4]
当然数组去重的方法有许许多多,只是刚才被set爽到了,所以才写下这篇文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。