我正在尝试做一个小小的徽标猜谜游戏。 我有一系列徽标名称,然后您必须猜出它是哪个徽标名称。
我已使用以下代码从徽标名称中删除了空格。
var cleanLogoName = randomLogoName.replace(/ /g,'');
然后我想通过使用此代码知道徽标名称中的字符数量。
var numberOfChar = cleanLogoName.length;
然而游戏是一个刽子手游戏,因此我不需要多次计算相同的角色。
例如:
可口可乐
我只需要计算c,a,o一次而不是两次。
有没有用javaScript做到这一点?
答案 0 :(得分:4)
您可以使用正则表达式来检测和删除多次出现的字符:
"coca cola".replace(/\s|(.)(?=.*\1)/g, "").length // 4
(使用backreference to a captured letter中的lookahead expression)
答案 1 :(得分:1)
我认为一些伪代码可以帮助您更好地理解这个概念,并鼓励您自己解决问题。如果您需要,这可以提供免费的正则表达式。
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)