Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当您在Javascript中创建一个新集合时,您会迭代吗?_Javascript - Fatal编程技术网

当您在Javascript中创建一个新集合时,您会迭代吗?

当您在Javascript中创建一个新集合时,您会迭代吗?,javascript,Javascript,出现这个问题的原因是为了检查一个单词是否包含重复的字母。我想采取的方法是: var word = "will" var x = new Set(word) if(x.size == word.length){ console.log("no duplicates") }else{ console.log("duplicates") } 我知道当你创建一个集合时,这个值只能出现一次。试图确定这是否是一种有效的方法,我不确定在创建集合时它是否会迭代,或者它是否使用某种哈希表。如果

出现这个问题的原因是为了检查一个单词是否包含重复的字母。我想采取的方法是:

var word = "will"
var x = new Set(word)

if(x.size == word.length){
    console.log("no duplicates")
}else{
    console.log("duplicates")
}

我知道当你创建一个集合时,这个值只能出现一次。试图确定这是否是一种有效的方法,我不确定在创建集合时它是否会迭代,或者它是否使用某种哈希表。

如果您担心性能,我建议您使用jsPerf并比较您可能已经考虑过的任何其他方法

尝试使用您的特定场景,因为它可能取决于运行代码的引擎和正在运行的实际场景

以此为例,

Set对象是ECMAScript语言值的集合。不同值只能作为集合集合的元素出现一次。使用比较算法区分不同的值。你想要什么?。由于上述方法不会检查重复的
字母
有效方法
如果正确使用,是的。你只是想问,将
单词
放入一个集合是否会导致
单词
被迭代?如果你想使用集合检查重复的字母,比如->
var hasDups=(s)=>新集合(s.split(“”)).尺寸!==s、 长度
为真,
hasDups('dog')
为假。它不会告诉你哪些字母是重复的,但会告诉你是否有重复的。是的,这似乎回答了我的问题。我不确定仅仅制作一个过滤方法是否会更容易。我想知道最有效的方法是什么。非常感谢。