如何在javascript中循环字符串中的字符?

时间:2016-03-27 19:39:15

标签: javascript loops foreach

我在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}}

3 个答案:

答案 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

DEMO