为什么方法返回0
Why does method return 0?
使用下面的对象和方法,为什么console.log(FizzBuzzPlus.getFizzBuzzCount(20))
打印0?
var FizzBuzzPlus = {
isFizzBuzzie: function(a) {
if(a%5 === 0 || a%3 === 0) {
if (a%5 === 0 && a%3 === 0) {
return false;
}
return true;
} else {
return false;
}
},
isFizzBuzzieChecker: function(c) {
var theFizzBuzzes = [];
for (var i = 0; i < c; i++) {
if (this.isFizzBuzzie(i)) {
theFizzBuzzes += i + " ";
}
}
return theFizzBuzzes;
},
getFizzBuzzSum: function(b) {
var sum = 0;
for (var i = 0; i < b; i++) {
if (this.isFizzBuzzie(i)) {
sum += i;
}
}
return sum;
},
getFizzBuzzCount: function(c) {
var count = 0;
for (var i = 0; i < c; i++) {
if (this.isFizzBuzzie(i)) {
count++;
}
return count;
}
}
};
console.log(FizzBuzzPlus.isFizzBuzzieChecker(20));
console.log(FizzBuzzPlus.getFizzBuzzSum(20));
console.log(FizzBuzzPlus.getFizzBuzzCount(20));
有人可能会认出这是Codecademy的FizzBuzz。我正在使用他们的在线JavaScript编辑器玩对象。该方法的输出结果总是0。它应该返回0到20之间能被3或5整除的数的个数,但不能同时被3和5整除。
此时在你的代码中你有你的return
语句在你的for
循环:
getFizzBuzzCount: function(c) {
var count = 0;
for (var i = 0; i < c; i++) {
if (this.isFizzBuzzie(i)) {
count++;
}
return count; //<-- this return is INSIDE the for loop
}
}
将return
移出for
循环:
getFizzBuzzCount: function(c) {
var count = 0;
for (var i = 0; i < c; i++) {
if (this.isFizzBuzzie(i)) {
count++;
}
}
return count;
}
小提琴:
http://jsfiddle.net/hVf9n/
在for循环中有返回语句,在isFizzBuzzieChecker
中也有语法错误,在if
条件中缺少关闭的)
getFizzBuzzCount: function(c) {
var count = 0;
for (var i = 0; i < c; i++) {
if (this.isFizzBuzzie(i)) {
count++;
}
}
return count;
}
演示:小提琴
相关文章:
- 从Javascript方法返回全局变量
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- JavaScript”;.方法“;返回undefined
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- parseInt()方法如何返回整数
- 我应该返回一个类似console.log()的方法调用吗
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- 从 javascript 中的对象方法返回一个对象
- 多次调用方法后返回相同promise的模式
- 返回当前状态名称的方法
- 包含插入的Meteor方法没有返回记录ID作为结果
- 有没有更好的方法可以测量从Ajax调用返回数据所需的总时间
- 为什么我的Mongoose findAll方法返回500错误.
- AngularJS 在 IndexedDB 调用后返回方法的对象
- Javascript方法以字符串形式返回方法代码
- JavaScript返回方法
- For var在对象中返回方法和属性
- 在QuerySet.values()或values_list()中返回方法的结果
- 为什么..in语句同时返回方法和属性