Set似乎是一种创建具有保证唯一元素的数组的好方法,但它没有公开任何获取属性的好方法,除了生成器[Set]。值,以mySet.values.next()的尴尬方式调用。
这是可以的,如果你可以调用map和类似的函数集。但你不能这样做。
我已经尝试了Array.from,但似乎只转换类似数组(NodeList和TypedArrays ?)对象到数组。另一个尝试:Object。keys不适用于Set,而Set。原型没有类似的静态方法。
那么,问题是:是否有任何方便的内置方法来创建具有给定Set值的数组?(元素的顺序并不重要)。
如果不存在这样的选项,那么也许有一个很好的惯用的一行程序可以做到这一点?比如,用来…属于,还是类似的?
下面的代码从数组创建一个集合,然后使用…操作符。
var arr=[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,];
var set=new Set(arr);
let setarr=[...set];
console.log(setarr);
函数countUniqueValues(arr) {
返回Array.from(new Set(arr)).length
}
console.log(countUniqueValues([1,2,3,4,4,4,7,7,12,12,13]))
下面的代码从数组创建一个集合,然后使用…操作符。
var arr=[1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,];
var set=new Set(arr);
let setarr=[...set];
console.log(setarr);