如何将一个字符算作一个字符,即使它出现不止一次

How do I count one characters as only one even though it is appears more than once?

本文关键字:一个 字符 不止一次      更新时间:2023-09-26

我正在尝试做一个小的徽标猜测游戏。我有一系列的标志名称,然后你必须猜测它是哪个标志名称。

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

var cleanLogoName = randomLogoName.replace(/ /g,'');

然后我想通过使用这个代码来知道徽标名称中的字符数量。

var numberOfChar = cleanLogoName.length;

然而,这个游戏是一个刽子手游戏,所以我不需要多次计算相同的角色。

例如:

可口可乐

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

有没有用javaScript来做这件事?

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

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

(在前瞻表达式中使用对捕获的字母的反向引用)

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

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)