1. ホーム
  2. javascript

[解決済み] 純粋なjavascriptで単語が等値線であるかどうかをチェックします。

2022-02-12 10:49:50

質問

与えられた単語がアイソグラムであるかどうかを、純粋なjavascriptで関数を使用して確認するにはどうすればよいですか。

アイソグラムとは、文字が繰り返される単語のことです。

私はこのコードが動作することを知っているが、私はより良い解決策が必要です。

function isIsogram(word){
    x = false; y = false;
    for(i = 0; i < word.length; i++){
        wordl = word.substring(0,i)
        wordr = word.substring(i)
        x = wordl.includes(word.charAt(i))
        y = wordr.includes(word.charAt(i))
        //console.log(x,wordl,wordr)
    }
    return x&&y
}
isIsogram("thomas");//False
isIsogram("moses"); //True

解決方法は?

を使った簡単な方法を紹介します。 .split().every() :

let isIsogram = (str) => str.split("").every((c, i) => str.indexOf(c) == i);
                            
console.log(isIsogram("thomas"));   /* no repeating letter */
console.log(isIsogram("moses"));    /* s repeat 2 times */
console.log(isIsogram("hello"));    /* l repeat 2 times */
console.log(isIsogram("world"));    /* no repeating letter */
console.log(isIsogram("a b c"));    /* space character repeat 2 times */

Docs