我需要数组中 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/