如何在 JavaScript 中循环遍历字符串中的字符?

Squ*_*3lz 5 javascript foreach loops

我有以下 js 并在循环中收到错误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;
}
Run Code Online (Sandbox Code Playgroud)

Mat*_*zer 16

JavaScript 没有foreach其他语言那样的块。

你可以做的是使用Array.prototype.forEach

Array.from("hello").forEach(function(character) {
  console.log(character);
});
Run Code Online (Sandbox Code Playgroud)

嗯,在 ES2015 及以上版本中,你可以使用for..of

for (let character of "hello") {
  console.log(character);
}
Run Code Online (Sandbox Code Playgroud)


And*_*ndy 1

您可以filter在字符串中与您的测试匹配的那些字符上返回该数组的长度。

function bitCount(n) {
  var strBitCount = (n >>> 0).toString(2);
  var equalsOne = function (char) { return +char === 1; }
  return [].filter.call(strBitCount, equalsOne).length;
}
Run Code Online (Sandbox Code Playgroud)

演示版