2017-10-04 51 views
1

出現這個問題的原因是檢查一個單詞是否包含重複的字母。我想採取的方法是:當你在Javascript中創建一個新的Set時,你會迭代嗎?

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

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

我知道當你創建一個設置值只能發生一次。試圖確定這是否是一種有效的方法我不確定當你創建一個Set時,如果它迭代或者它使用某種散列表。

+0

集對象是ECMAScript語言值的集合。一個獨特的值可能只會作爲Set集合的一個元素出現一次。使用[SameValueZero](https://tc39.github.io/ecma262/#sec-samevaluezero)比較算法區分不同的值。 [來源](https://tc39.github.io/ecma262/#sec-set-objects) –

+0

你想要什麼?由於上述不會檢查重複的'字母',如果正確使用'有效的方法',是的。 – Keith

+0

你只是問是否將'詞'放在Set中導致'word'被迭代? – Carcigenicate

回答

1

如果您擔心性能,我會建議使用jsPerf並比較您可能已經考慮過的其他任何方式。

嘗試使用您的特定場景,因爲它可能取決於運行代碼的引擎以及正在運行的實際場景。

以此爲例子 https://jsperf.com/dedupe-a-list

+0

是的,這似乎回答我的問題。我不確定是否對我來說只是製作過濾方法會更容易。我好奇最有效的方法會是什麼。謝謝 – user8720880

相關問題