Set
是ES6中新的对象,今日偶然接触,发现利用它能够迅速为数组去重,只须要两行代码!数组
集合(Set)对象容许你存储任意类型的惟一值(不能重复),不管它是原始值或者是对象引用。code
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}
。利用这一特性,咱们就能够迅速地去掉数组中重复的元素。对象
废话很少说,直接看代码:console
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爽到了,因此才写下这篇文章。引用