【发布时间】:2015-01-22 15:59:46
【问题描述】:
我遇到了一段我想弄清楚的代码,该代码基本上存储了一个单词在文本文档中出现的时间量,所以函数 countWordsIntext 接受所需的文本并显示文本中的单词和出现次数, 例如 会:3 但是:5 非常:6
在查看计算文本中单词的函数时,我无法弄清楚条件三元运算应该如何工作。非常感谢您的解释
var wordCounts = {};
function countWordsInText(text) {
var words = text.toString()
.toLowerCase()
.split(/\W+)
.sort();
for(var index in words) {
var word = words[index];
if(word) {
wordCounts[word] =
(wordCounts[word]) ? wordCounts[word] + 1 : 1;
}
}
}
function display()
{
for (var index in wordCounts)
console.log(index + ': ' + wordCounts[index]);
}
我不明白wordCounts[word] 对象属性是如何更新的。
【问题讨论】:
-
这个代码?
wordCounts[word] =....也许换行符让你感到困惑。如果 wordCounts[word] 存在,则将其递增,否则将其设置为 1(因为它是一个新条目)。而且它不是一个数组,它是一个可以使用字典/数组类型语法访问成员的对象。
标签: javascript arrays conditional-operator