javascript - 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)
- 我得到了正确的文本和值,但它不计入 MaxValue,它只输出与其对应的答案的倍数。
你会推荐什么来连接从 1-maxValue 运行的文本字符串?
解决方案
您需要更改一些部分:
替换
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);
推荐阅读
- .net-core - 该请求缺少身份验证密钥。请参阅 IHttpClientFactory 的“身份验证”部分
- html - Uncaught Invariant Violation:对象作为 React 子对象无效(发现:[object HTMLInputElement])
- swift - 元组数据到 Swift 键值对。它是一个 python 对象,响应是单引号字符串
- r - 根据条件计算跨行的值
- postgresql - 使用 ALTER TABLE 动态添加新列的功能
- serverless-framework - 我可以将整个 node_modules 文件夹部署为 lambda 层吗?
- html - 让渐变穿过两个并排的 Divs React
- python - 如何在python中解释余弦相似度输出
- javascript - 使用 express.js 我收到此错误:未捕获的错误 [ERR_HTTP_HEADERS_SENT]:在将标头发送到客户端后无法设置标头
- stdstring - main.cpp:10:17:错误:预期表达式