JS -我的循环和if语句打印出错误的字符串
JS - My loop and if statements print out the wrong string?
我的循环似乎打印出错误的字符串。我需要15美元来打印fizzbuzz。在我看来,应该是这样。
var numbers = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
for (i=0; i < numbers.length; i++)
if (numbers[i]%3 === 0 && numbers % 5 !== 0 ){
console.log("Fizz");
} else if (numbers[i] % 5 === 0 && numbers[i] % 3 !== 0) {
console.log("Buzz");
} else if (numbers[i] % 3 === 0 && numbers[i]%5 === 0) {
console.log("FizzBuzz");
} else {
console.log(numbers[i]);
}
};
这是因为您在第4行写的是numbers % 5
而不是numbers[i] % 5
。
作为一般规则,重要的是将迭代器存储在变量中,以避免这种情况(并缓存值,而不是每次都检索值)。如果可以的话,使用for..of
ES6语法,它使事情更容易写,更易读,更少出错。
for (const number of numbers) {
if (number % 3 === 0 && number % 5 !== 0 ){
console.log("Fizz");
} else if (number % 5 === 0 && number % 3 !== 0) {
console.log("Buzz");
} else if (number % 3 === 0 && number%5 === 0) {
console.log("FizzBuzz");
} else {
console.log(numbers[i]);
}
}
请记住,Fizzbuzz测试是一个简单的面试问题,由开发StackOverflow的家伙想象出来的。在这个测试中失败不是一个选择:)所以训练你的代码风格来编写更少容易出错的代码。
例如,在多个if/else语句中测试变量之前,尝试将考虑的值存储在一个变量中,这是一个好习惯,它使代码更具可读性,更容易调试。看这里,如果不这样做,你就花了很多时间来理解错误,并且不得不问SO关于这个。想象一下,如果它是一个真正的工业代码,它将付出多大的代价。祝你好运,代码安全:)
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- JavaScript打印功能使日历停止工作
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- jQuery/JavaScript在线公文包表单-打印样式表
- 在Meteor项目中安装并包含npm模块后出错
- 如何打印嵌套对象的所有值
- 解析JSON并从中删除对象会出错
- AngularJS指令出错-无法读取属性'编译'的未定义
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 打印预览没有应用程序页眉和页脚的html表格
- 正在打印图表上的文本
- 使用javascript在MVC中查找网格长度时出错
- 尝试调用AngularJS上的函数时出错
- Rhino打印功能
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 在道场 dtl 中打印空值时出错
- 打印SSRS报告时出错