首页 > 解决方案 > Snap,Crackle,Pop:Javascript

问题描述

我刚开始学习前端开发,在我的一个项目中遇到了障碍。该项目希望我创建一个函数:带有参数的 SnapScrackle:maxValue 并创建一个从 1 到 maxValue 的循环,并将连接的文本字符串作为 console.log 结果。

这是我的代码:

function snapCrackle(maxValue) {
    let text = ""
    let index
for ( index = 1; index <= maxValue; index ++ ) {
    if (maxValue % 2 !== 0) {
        text += "Snap, " }
     if (maxValue % 5 === 0) {
        text+= "Crackle, " } 
     if ((maxValue % 2 !== 0)&&(maxValue % 5 === 0)){
        text += "SnapCrackle, "} 
    if ((maxValue % 2 === 0) || (maxValue % 5 !== 0)){
        text += (maxValue + ",")
    } 
}
console.log(text)
}
snapCrackle()

*当我运行代码时,我得到一个重复的 maxValue 我输入的例子:[14] 给出 14,(x14) [2] 给出 2,(x2)

你会推荐什么来连接从 1-maxValue 运行的文本字符串?

标签: javascript

解决方案


您需要更改一些部分:

  • 替换index(实际上没有数组可以使用)value并在循环中使用 this 而不是maxValue,因为value它是唯一正在改变的值。

  • 将最复杂的检查作为第一个条件。

  • 如果条件是并且文本正在更改,则continue继续循环。true

  • 如果所有其他条件都为假,则最后添加值本身。

  • 最后调用具有 值的函数maxValue

function snapCrackle(maxValue) {
    let text = "";
    for (let value = 1; value <= maxValue; value++) {
        if (value % 2 !== 0 && value % 5 === 0) {
            text += "SnapCrackle, ";
            continue;
        }
        if (value % 2 !== 0) {
            text += "Snap, ";
            continue;
        }
        if (value % 5 === 0) {
            text += "Crackle, ";
            continue;
        }
        text += value + ", ";
    }
    console.log(text);
}

snapCrackle(15);


推荐阅读