const string = "Hello There";
const chars ={};
for(let character of string){
if(!chars[character]){
chars[character] = 1;
}else{
chars[character]++;
}
}
console.log(chars);
以下代码将打印出字符串中出现的唯一字母数。我知道感叹号代表“假”,但是我不理解在以下示例中它代表什么:
!chars[character]
我很难理解如何比较it字符与其他字符,因为它明确说明char [在当前i]。 如果有人能给出一个更简单的例子,那就好了。我试着调试它,但也无法理解。
char
没有"H",则条件为:if (!char[character]) {...
--则开始一个:"char:{"H": 1}",然后在第二次迭代中变成了:"char:{"H": 1, "e": 1}",直到第四次迭代满足第二个条件:"else {..."当对象char
有"l"时,将添加到char["l"]
的计数器中--所以在第四次迭代中它将是:"char: {"H":1, "e": 1, "l": 2};"。 - zer00nechars{}
保留信息,以便检测是否有重复字符并执行else
条件。 - Roma Kim