Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 寻求建议。嘶嘶嗡嗡声编码挑战(条件语句)_Javascript - Fatal编程技术网

Javascript 寻求建议。嘶嘶嗡嗡声编码挑战(条件语句)

Javascript 寻求建议。嘶嘶嗡嗡声编码挑战(条件语句),javascript,Javascript,我是JS的新手,我正在进行一项FizzBuzz挑战赛。下面是我基本上尝试过的,当函数获取一个值时,它将从1迭代到该值,并生成一个数组 我希望就添加条件检查寻求建议,例如:1)如果值n小于4,它将返回字符串:“请插入一个大于或等于4的值”和2)如果函数未传递任何值,它应该返回一个空数组。我不确定在哪里添加,我应该在每个条件检查中使用if…else还是简单地使用if。非常感谢 var fizzBuzz = function(n, arr = []) { for (let i = 1; i

我是JS的新手,我正在进行一项FizzBuzz挑战赛。下面是我基本上尝试过的,当函数获取一个值时,它将从1迭代到该值,并生成一个数组

我希望就添加条件检查寻求建议,例如:1)如果值n小于4,它将返回字符串:“请插入一个大于或等于4的值”和2)如果函数未传递任何值,它应该返回一个空数组。我不确定在哪里添加,我应该在每个条件检查中使用if…else还是简单地使用if。非常感谢

var fizzBuzz = function(n, arr = []) {   
  for (let i = 1; i < n; i++) {
  if (n === 1) {                         
    arr.push('1');
    return arr.reverse();
  } else {                               
    if (n % 4 === 0 && n % 5 === 0) {
      arr.push('FIZZBUZZ');
    } else if (n % 5 === 0) {
      arr.push('Buzz');
    } else if (n % 4 === 0) {
      arr.push('Fizz');
    } else {
      arr.push('' + n);
    }
    return fizzBuzz(n - 1, arr);         
  }
  }
}
var fizzBuzz=函数(n,arr=[]){
for(设i=1;i
您可能想得太多了
  • 代码的首要任务是让程序员理解
  • 深度嵌套的条件句很难理解,也很难维护。所以:让所有条件路径尽可能短,不要把快乐路径放在
    if
  • 以下是您的要求:

  • 如果值n小于4,它将返回字符串:“请插入一个大于或等于4的值”
  • 如果函数未传递任何值,则应返回空数组
  • 规则#1建议我们将完全按照您描述的方式表达条件

    规则#2建议我们首先处理这些特殊情况,简言之,即终端分支,函数的其余部分处理默认场景。这将使函数保持良好和平坦(即很少的缩进级别,这有助于控制),并使未来的开发人员更容易浏览实现

    函数fizzBuzz(n){
    //如果函数未传递任何值,则应返回空数组
    //我把这个案例放在第一位是为了避免必须弄清楚“undefined”是否小于4`
    如果(n==未定义){
    //这是一个短的终端分支
    返回[]
    }
    //如果值n小于4,它将返回一个特定字符串
    if(n<4){
    //这是一个短的终端分支
    返回“请插入一个大于或等于4的值”
    }
    //这就是树干:只要快乐之路需要,它就会一直长下去
    放出=[]
    for(设i=1;i


    如果您是JS新手,需要一些常规技巧,那么您可能会做得比JS差。

    您的代码正常吗?如果是,那么您应该将其发布到codereview.stackexchange以获取改进建议。如果它不起作用,请添加预期输出和实际输出,谢谢你的建议。始终返回相同的类型。有时不要返回字符串,有时不要返回数组。这使得调用者很难处理,也许返回字符串的另一种方法是抛出异常?谢谢Paul,但是我似乎必须使用“try”、“catch”,因为在本课程的这个阶段我不应该使用它们,因为它们没有被涵盖。