2017-10-04 13 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") 
} 

私が知っているのは、値が1回しか出現しないということです。これが効率的なアプローチであるかどうかを判断しようとしています。反復するかどうか、または何らかのハッシュテーブルを使用するかどうかをSetを作成するかどうかはわかりません。

+0

セットオブジェクトは、ECMAScriptの言語値の集合です例としてこれを取ります。一意の値は、Setのコレクションの要素として1回だけ発生することがあります。明確な値は、[SameValueZero](https://tc39.github.io/ecma262/#sec-samevaluezero)比較アルゴリズムを使用して弁別されます。 [ソース](https://tc39.github.io/ecma262/#sec-set-objects) –

+0

あなたの望みは何ですか?上記のように、重複する「文字」、正しく使用された場合の「効率的なアプローチ」をチェックするつもりはないので、はい。 – Keith

+0

Setに 'word'を置くと、' word'が反復されるかどうかを確認するだけですか? – Carcigenicate

答えて

1

パフォーマンスが心配な方は、jsPerfを使用して、これまでに考えている可能性のある他の方法を比較することをおすすめします。

特定のシナリオは、コードを実行しているエンジンと実行中の実際のシナリオによって異なる場合があります。

https://jsperf.com/dedupe-a-list

+0

はい、これは私の質問に答えるようです。フィルター方法を作るほうが簡単かどうかはわかりませんでした。私は、最も効率的なアプローチが何であったのだろうかと不思議です。ありがとうございました – user8720880

関連する問題