我正在尝试计算字符串中出现唯一字符的次数。
但是我被困在对象迭代中,无论同一字符出现多次,它只会返回1:
function allUniqueCha(word) {
var wordObj = {};
var wordArray = word.split([, ]);
wordArray.forEach(function(c) {
wordObj[c] = +1;
});
console.log(wordArray);
console.log(wordObj);
}
allUniqueCha("Bubble")
输出为:{B:1,u:1,b:1,l:1,e:1},但键“ b”的期望值应为2。
最佳答案
你写了:
wordObj[c]=+1;
使用某些格式:
wordObj[c] = +1;
您总是将
+1
分配给该值,此处没有增量。尝试 wordObj[c] = (wordObj[c] || 0)+1;
和
var wordArray = word.split([, ]);
应该是
var wordArray = word.split("");
function allUniqueCha(word) {
var wordObj = {};
var wordArray = word.split("");
wordArray.forEach(function(c) {
wordObj[c] = (wordObj[c] || 0) +1;
});
console.log(wordArray);
console.log(wordObj);
}
allUniqueCha("Bubble")
关于javascript - 带for循环的Javascript对象迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42262280/