作者:小傲骄FMJ | 来源:互联网 | 2023-01-22 13:14
我正在尝试用字符串创建哈希映射,地图采用以下形式:
{ 'char': charOccurrence }
这是我的代码:
function compress(text) {
let hash = new Map();
let prev = [];
for (let i = 0; i
问题count
总是0,我不知道即使在影响for循环中的值之后这是怎么回事.这是我从这段代码中得到的:
Map { 'a' => 0, 'h' => 0, 'e' => 0, 'd' => 0 }
我在这里缺少什么?
1> user94559..:
你正在覆盖以前的结果.
每次看到"a"时,都会从0开始计数并读取字符串的其余部分,然后将所有内容覆盖为hash
您找到的总计数.字符串中的最后一个"a"将得到总计数0.这就是每个字母都会发生的事情.
prev
你没有做任何事情,或许是为了防止这种情况发生.(你可以跳过你已经计算过的字母.)
这是一个更简单(更快)的方法:
function compress(text) {
let hash = new Map();
for (let i = 0; i 8, 'h' => 4, 'e' => 4, 'd' => 1 }