我在function bitCount(n) {
var strBitCount = (n >>> 0).toString(2);
var answer = 0;
var c = '';
foreach(c in strBitCount)
{
if(Number(c) == 1)
{
answer++;
}
}
return answer;
}
循环中有以下js和接收错误:
{{1}}
答案 0 :(得分:3)
JavaScript与其他语言一样没有foreach
块。
您可以使用Array.prototype.forEach
:
Array.from("hello").forEach(function(character) {
console.log(character);
});
嗯,在ES2015及更高版本中,您可以使用for..of
for (let character of "hello") {
console.log(character);
}
答案 1 :(得分:1)
您可以使用普通for
循环并使用[]
索引到字符串中:
for (var i = 0; i < strBitCount.length; ++i)
if (Number(strBitCount[i]) === 1)
answer++;
请注意,您也可以将数字添加到answer
:
for (var i = 0; i < strBitCount.length; ++i)
answer += Number(strBitCount[i]); // or +strBitCount[i]
答案 2 :(得分:1)
您可以filter
对字符串中与您的测试匹配的字符进行function bitCount(n) {
var strBitCount = (n >>> 0).toString(2);
var equalsOne = function (char) { return +char === 1; }
return [].filter.call(strBitCount, equalsOne).length;
}
,并返回该数组的长度。
setFormula