javascript - 使用 for 循环替换数组中的元素 javascript 未正确替换元素

标签 javascript arrays loops

我这里有一个函数,可以分别用“Fizz”和“Buzz”替换 3 和 5 的倍数的元素。我运行了该函数,它仅用“Fizz”替换第一个元素,没有其他任何内容。我不确定为什么它只替换第一个元素,因为它与我拥有的任何 if else 语句都不匹配。我不认为我需要在函数中包含数组,因为这意味着在我尝试替换元素时正在创建数组。

var listOfNumbers = new Array(100);

var i, j;
for (i = 0; i < listOfNumbers.length; i++){
    listOfNumbers[i] = i + 1;
}

function fizzBuzz(listOfNumbers){                
    for (j = 0; j < listOfNumbers.length; j++) {
        if (j % 3 == 0 && j % 5 == 0){
            listOfNumbers[j] = "FizzBuzz";
        }
        else if (j % 3 == 0) {
            listOfNumbers[j] = "Fizz";
        }
        else if (j % 5 == 0) {
            listOfNumbers[j] = "Buzz";
        }
        else {
            listOfNumbers[j] = j;
        }
        return listOfNumbers;
    }
    document.getElementById("Nums").innerHTML = fizzBuzz();
}

Array in the console.

我不确定

另外,我有一个显示数组的按钮,但单击它时似乎没有显示数组。

<h4>Fizz Buzz</h4>
<p>An idea that prints the elements of an array from 1 to 100, but it prints "Fizz" for every multiple of 3, "Buzz" for ever multiple of 5, and finally "FizzBuzz" for every multple of 15.
    Idea taken from <a href="https://github.com/karan/Projects#text">here</a>.</p>
    <button type="button" onclick="fizzBuzz()">Click to see the results</button>
    <p id="Nums"></p>

最佳答案

你需要

  • 移交数组,

  • 检查数组的值,而不是索引,因为它移动了一位,

  • 首先检查FizzBu​​zz,获取可被35整除的数字,

    <
  • 返回末尾的数组,

  • 另外声明一个局部变量j

function getFizzBuzz() {
    var listOfNumbers = new Array(100),
        i;

    for (i = 0; i < listOfNumbers.length; i++) {
        listOfNumbers[i] = i + 1;
    }
    document.getElementById("Nums").innerHTML = fizzBuzz(listOfNumbers);
}

function fizzBuzz(array) {
    var j;

    for (j = 0; j < array.length; j++) {
        if (array[j] % 3 == 0 && array[j] % 5 == 0) {
            array[j] = "FizzBuzz";
        } else if (array[j] % 3 == 0) {
            array[j] = "Fizz";
        } else if (array[j] % 5 == 0) {
            array[j] = "Buzz";
        }
    }
    return array;
}
<button onclick="getFizzBuzz()">FizzBuzz!!!</button><br><div id="Nums"></div>

关于javascript - 使用 for 循环替换数组中的元素 javascript 未正确替换元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49223014/

相关文章:

javascript - 如何合并实例中的模块?

javascript - 使用 Mongoose.js 按嵌套数组中的字段排序

c++ - 将 int 矩阵数组放入 C++ 对象时出现问题

python - python嵌套循环中的列表理解

c - 为什么这段代码总是给出这个错误?语法错误: Bad for loop variable

javascript - 如何循环访问对象属性?

javascript - 将主干获取/初始化变量传递给 View

javascript - 十进制数的正则表达式,接受 0 到 4 位数字,但不接受字符

javascript innerHTML 结束标签大小写

Java多维数组索引