javascript - 从 javascript hashmap 迭代键为最后一个元素提供空字符串

标签 javascript typescript hashmap iteration

我需要数组中 javascript/typescript HashMap 中的键。我使用 Map.Keys() 方法,并迭代键来填充名为:searchTerms 的数组。由于某种原因,数组中的最后一个值始终是空字符串。

当我在调试器中查看 hashMap 时,我看到的正是我所期望的;字符串类型的键和字符串数组的值,没有空键。

public setSearchTerms(searchMap: Map<string, Array<string>>) {
        if(searchMap && searchMap.size) {
            let myKeys = myMap.keys();
            this.searchTerms = [...myKeys];

           /*
            for(let k of myKeys) {
                if(k.length > 0) {
                    this.searchTerms.push(k);
                }
            }
            */
        }
    }

当我按原样运行代码时,searchTerms 数组包含 map 中的所有键,以及一个空字符串。使用 for-of 循​​环(当前已注释掉)也会放入空字符串,但我放入了长度检查来解决问题。我只是想了解空字符串从哪里来。我可以让它工作,但让我烦恼的是我无法弄清楚空字符串来自哪里。

最佳答案

看起来这是一个 cr/lf 问题。对源文件进行了 hexdump,最后有一个额外的 0a0d。找到了之前的堆栈帖子对此进行了解释。感谢您指出正确的方向。 Link

关于javascript - 从 javascript hashmap 迭代键为最后一个元素提供空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55929866/

相关文章:

javascript - 续表没有列 'id'

TypeScript 编译器 API : find which file a type came from

reactjs - React 和 TypeScript 上传文件输入错误

javascript - typescript 文件在哪里以及如何成为我项目中的 JS 文件?

hashmap - 如何将一系列数字散列到散列表中的单个位置

javascript - 基于单选选择的模态图像作为数组索引

javascript - Web 身份验证可以跨浏览器工作吗?

javascript - 客户端 IFRAME 中的沙盒内容

java - 为什么这些值会重复?

android - 如何访问(迭代?)另一个类中的 ArrayList/Hashmap?