从FizzBuzz到数组



我似乎无法弄清楚这一点,我可以使用console.log(I)并获得返回,但不能弄清楚如何返回作为一个数组?

接受一个数字max,并返回一个数组,该数组包含来自的所有数字可被3或5整除的0到最大值(不包括在内),但不能同时被3或5整除

function fizzBuzz(max) {
let arr = [];

for(let i = 0; i < max; i++){
if(i % 3 === 0 && i % 7 !== 0){
arr = arr.concat(i);

} else if(i % 3 !== 0 && i % 7 === 0){
arr = arr.concat(i);
}
return arr;
};
fizzBuzz(20);

使用Array.prototype.push(用于向数组中添加元素)而不是Array.prototype.concat(用于将一个数组与另一个数组合并)在这里要简单得多。您还可以使用异或运算符(^)来代替编写两个if语句:

function fizzBuzz(max) {
let arr = [];
for (let i = 0; i < max; i++) {
if (i % 3 === 0 ^ i % 5 === 0) {
arr.push(i);
}
}
return arr;
}
console.log(fizzBuzz(20));

您的代码中有一些错误,您应该使用数组。push而不是concat,你在最后少了一个}

这段代码应该做你需要的:)生成一个介于0和Max之间的数组,并生成一个可被3或5整除但不能同时被3或5整除的数字数组

function fizzBuzz(max) {
let arr = [];  
for(let i = 0; i <= max; i++){
if((!(i % 3) && !(i % 5))) continue;
if(!(i % 3) || !(i % 5)){
arr.push(i);
}         
}
return arr;
};
console.log(fizzBuzz(20));

最新更新