如何检查字符串是否包含重复的字符?

时间:2020-06-01 16:21:46

标签: javascript arrays string loops for-loop

我想知道确定字符串是否包含重复字符的最佳方法是什么,即使它们并不相邻?我尝试将字符串更改为数组,然后使用嵌套的for循环将数组中的每个项目与另一个进行比较,但是由于某种原因,它不起作用。

function hasRpeatedCharacters(str) {

    let array = [];
    for (let i = 0; i < str.length; i++) {
        array.push(str[i]);

    }

    for (let j = 0; j < array.length; j++) {

        for (let k = j + 1; k < array.length; k++) {

            if (array[j] != array[k]) {
                return true;
            } else {
                return false;
            }
        }

    }

}

hasRepeatedCharacters("abadan");

1 个答案:

答案 0 :(得分:2)

根据字符串创建一个Set,然后检查Set的大小是否小于字符串的长度。一个Set只能容纳唯一的值,因此,如果有重复的字符,则Set的大小将小于字符串的长度。

const hasRepeatedCharacters = str => new Set(str).size < str.length;

console.log(hasRepeatedCharacters("abadan"));
console.log(hasRepeatedCharacters("abc"));

相关问题