为什么我的 JavaScript 哈希带有保留字“toString”作为显示 NaN 的键
Why is my JavaScript hash with the reserved word "toString" as a key showing NaN?
我正在做一个编程练习,希望我计算字符串中单词的所有出现次数,例如"狗去了另一只狗"。
对于上面的示例,我必须返回一个带有计数的哈希值:{the: 2, dog: 2, went: 1, to: 1, other: 1}
但我的问题是我如何处理计算保留字,我得到了 NaN。
所以这个字符串{"狗去了另一只狗toString"},为我返回这个:
{the: 2, dog: 2, went: 1, to: 1,other: 1, toString: NaN}
我怎样才能得到这个给我真正的计数而不是 NaN。
JavaScript 实际上没有哈希值。 因此,如果您正在创建这样的哈希: hash = {}
那么您实际上是在创建一个对象,其原型链中已经存在属性。这包括toString
功能。为避免这种情况,请创建一个带有Object.create(null)
的对象来存储字数统计。
下面是一个示例:
var words = function(string) {
var words_array = string.split(" ");
var word_count_hash = Object.create(null);
words_array.map( function (word){
if (word in word_count_hash)
word_count_hash[word] ++;
else word_count_hash[word] = 1;
});
return word_count_hash;
}
相关文章:
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- angularjs的ng keydown事件,按下哪个键的值,然后显示按下的键的值
- 显示关联阵列中所有元素的键和值
- 如何修复加载时在网页上显示翻译键的角度翻译
- 不显示我在回发后右键单击 JavaScript 时显示的列表
- 创建 AJAX 调用以显示任何简单的键/值 JSON
- 为什么我的 JavaScript 哈希带有保留字“toString”作为显示 NaN 的键
- 传递给句柄帮助程序的参数显示为键而不是值
- JavaScript - 显示数组的键和值
- 使用 javascript 在下拉列表中显示选项的键和值
- 如何显示正在按下的键
- 为什么长度不显示为数组对象中的键
- i18下一个显示的键而不是值
- node.js:添加到Object的键值对,但在打印Object时不显示
- 如何使用箭头键控制高亮显示的单元格
- HTML表单可访问性:选项卡键焦点跳过新显示的字段
- e.target.value显示一个键的值'在'之后;
- 如何在模拟“A”键后在输入表单中显示像键入的键
- 是否有一种方法来迭代和显示json的键值对列表使用Handlebar.js
- 使用ng-options with angular显示带有键和值的选择选项,并设置一个默认值