gpt4 book ai didi

javascript - 为什么我的 JavaScript 哈希以保留字 "toString"作为键显示 NaN?

转载 作者:行者123 更新时间:2023-11-28 13:28:11 24 4
gpt4 key购买 nike

我正在做一个编程练习,希望我计算字符串中某个单词的所有出现次数,例如“thedog gone to the otherdog”。

我必须返回一个带有计数的哈希值,如上面的示例所示:{the: 2,dog: 2, gone: 1, to: 1, other: 1}

但我的问题是如何处理保留字的计数,我得到了 NaN。

所以这个字符串{“the狗去了另一只狗toString”},为我返回这个:

{the:2,dog:2,去:1,to:1,其他:1,toString:NaN}

我怎样才能得到这个给我真实的计数而不是NaN。

最佳答案

JavaScript 实际上没有哈希值。因此,如果您要创建这样的哈希:hash = {},那么您实际上是在创建一个在其原型(prototype)链中具有现有属性的对象。这包括 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;
}

关于javascript - 为什么我的 JavaScript 哈希以保留字 "toString"作为键显示 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com