我想計算字符在文本中出現的次數,然後顯示每個字符的總計。我的主要問題是第一部分。基於另一個屬性設置嵌套對象屬性
這裏是我的代碼快照至今:
//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
}
}
}
}
我想遍歷所有的字符集的基礎上matches
長度基於regExp
的matches
的價值和count
值。
這個問題的最佳答案是最接近我解決我的問題。 Access/process (nested) objects, arrays or JSON
我已經可以發現有兩件事情錯了:1)沒有必要的檢查:'如果(characters.hasOwnProperty(密鑰))'裏面你'爲in'循環。 2)你不能用點符號訪問一個變量屬性:'var obj = characters.key;'應該是'var obj = characters [key];'。 3)同樣,不需要檢查:'if(obj.hasOwnProperty(prop))'。糾正這些事情(主要是#2),它應該按照預期工作。 – tenub
嗯,我認爲解決了這個問題,但我想我在Chrome控制檯中出現了誤報。 – joel