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

标签 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");

最佳答案

从字符串创建一个 Set,并检查 Set 的大小是否小于字符串的长度。 Set 只能保存唯一值,因此如果存在重复字符,Set 的大小将小于字符串的长度。

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

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

关于javascript - 如何检查字符串是否包含重复字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62136459/

相关文章:

javascript - 模板文字函数传递问题

java - java中如何合并自定义类数组进行排序

C 以十六进制值初始化数组

ruby - << 在 Ruby 中是什么意思?

java - 帮助我了解 title.compareTo(a.title()); 的幕后花絮内码

javascript - 调用引用对象属性的方法会抛出 ReferenceError

javascript - 火力地堡错误 : [code=unknown]: Fetching auth token failed: Cannot redefine property: refreshToken

javascript - 用户滚动后如何防止 2 个视频同时工作

c# - 我们如何定义字符串常量而不是数组

c - 如何在C中打印出字符串的单个字符