【发布时间】:2020-01-10 18:26:25
【问题描述】:
我试图找出我在这个问题上做错了什么。我似乎遗漏了一些不允许我的代码工作的东西。我需要使用一个函数来创建一个数组,该数组采用一个数字 n,并循环遍历从数字 1 到 16 的数组,同时还将所有可被 3 整除的数字替换为字符串“fizz”,并且全部可被 5 整除带有单词'buzz',并且任何可以被两者整除的数字都必须替换为字符串'fizzbuzz'。
我已经检查了好几次,但由于某种原因,当我的结果被记录到控制台时,我不断地为我的结果提供一个空数组。如果有人能给我一些关于为什么我的代码不起作用的提示,我将不胜感激,这样我就可以更容易地理解这个概念。这是我的代码:
const results = [];
const fizzbuzz = (n) => {
var results = []
for (let n = 1; results.length < 16; n++) {
if (n % 3 === 0 && n % 5 === 0) {
results.push('FizzBuzz')
} else if (n % 3 === 0) {
results.push('fizz');
} else if (n % 5 === 0) {
results.push('buzz')
} else {
results.push(n)
}
}
return results
};
fizzbuzz(16);
console.log(results);
这就是它应该出来的结果:
[1, 2, 'fizz', 4, 'buzz', 'fizz', 7, 8, 'fizz', 'buzz', 11, 'fizz', 13, 14, 'fizzbuzz', 16]
但这是我不断得到的答案:
[]
【问题讨论】:
-
将调用函数的结果赋值给results-
const results = fizzbuzz(16); console.log(results); -
因为
var results = []..... 不是const results = [];你的fizzbuzz返回了一些东西而你没有使用它。 -
您在
fizzbuzz函数的inside 创建和操作的results变量与results变量outside没有关联> 功能。
标签: javascript function fizzbuzz