Javascript 即使一个字符出现多次,如何将其视为唯一的一个字符?

Javascript 即使一个字符出现多次,如何将其视为唯一的一个字符?,javascript,Javascript,我想做一个小小的商标猜谜游戏。 我有一个标志名称数组,然后你必须猜测它是哪个标志名称 我使用下面的代码删除了徽标名称中的空白 var cleanLogoName = randomLogoName.replace(/ /g,''); 然后,我想通过使用此代码知道徽标名称中的字符数 var numberOfChar = cleanLogoName.length; 然而,这个游戏是一个刽子手游戏,所以我不需要多次计算相同的角色 例如: 可口可乐 我只需要数一次c,a,o,而不是两次 javaScr

我想做一个小小的商标猜谜游戏。 我有一个标志名称数组,然后你必须猜测它是哪个标志名称

我使用下面的代码删除了徽标名称中的空白

var cleanLogoName = randomLogoName.replace(/ /g,'');
然后,我想通过使用此代码知道徽标名称中的字符数

var numberOfChar = cleanLogoName.length;
然而,这个游戏是一个刽子手游戏,所以我不需要多次计算相同的角色

例如:

可口可乐

我只需要数一次c,a,o,而不是两次


javaScript是否也可以这样做?

您可以使用正则表达式检测并删除多次出现的字符:

"coca cola".replace(/\s|(.)(?=.*\1)/g, "").length // 4

(在a中使用a)

我认为一些伪代码将帮助您更好地理解这个概念,并鼓励您自己解决这个问题。如果您需要的话,这提供了一个无正则表达式的解决方案

Define an empty list of characters.
Define a variable, count = 0;

for every letter in your word
    if(list does not contain this letter)
        count = count + 1
        list.add(count)

在你的刽子手游戏逻辑中,你肯定有一个单一角色的列表。你不能数一数吗?请向我们展示您的代码。将字符串拆分为数组,然后使用以下内容:我需要知道没有重复字符的字符总数,以确定何时有人猜到了这个词。感谢Alma Do Mundo,这看起来是我可以使用的。非常感谢,这看起来很有希望。如果我替换“可口可乐”如果变量名包含字符串,则会出现错误?取决于变量。这是什么错误?
.replace
没有抛出一个。很抱歉,我的错误,传递了错误的非字符串变量。现在它工作得很好。非常感谢你。