【发布时间】:2014-03-06 18:51:44
【问题描述】:
我想计算字符在文本中出现的次数,然后显示每个字符的总数。我的主要问题是第一部分。
这是我目前的代码快照:
//define text and characters to be searched for
var theArticle = document.getElementById('theText'),
docFrag = document.createDocumentFragment(),
theText = theArticle.innerText,
characters = {
a: {
regExp: /a/g,
matches: [],
count: 0
},
b: {
regExp: /b/g,
matches: [],
count: 0
},
c: {
regExp: /c/g,
matches: [],
count: 0
}
etc…
}
for (var key in characters) {
if (characters.hasOwnProperty(key)) {
var obj = characters.key;
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
matches = theText.match(regExp); // pretty sure my problem is here
count = matches.length; // and here
}
}
}
}
我想遍历所有字符以根据regExp 设置matches 的值,根据matches 的长度设置count 的值。
这个问题的最佳答案是我最接近解决我的问题。 Access / process (nested) objects, arrays or JSON
【问题讨论】:
-
我已经发现了一些错误:1)不需要检查:
if (characters.hasOwnProperty(key))在您的for in循环中。 2) 您不能使用点符号访问变量属性:var obj = characters.key;应该是var obj = characters[key];。 3) 同样,无需检查:if (obj.hasOwnProperty(prop))。纠正这些事情(主要是#2),它应该可以按预期工作。 -
嗯,我认为解决了它,但我想我在 Chrome 控制台中得到了误报。
标签: javascript regex loops object properties