具有额外难度层的Fizz Buzz问题

时间:2019-11-27 20:51:21

标签: javascript fizzbuzz

我正在尝试通过额外一层解决Fizz Buzz问题。

这是我到目前为止所拥有的。所有这些都很好,但是我还需要一个额外的条件。

这是JS单元测试

  

对于任何其他输入(有效或其他),返回输入的字符串表示形式

printFizzBuzz = function(input) {

  // Your code goes here
  for (var i = 1; i <= 20; i++) {

    if (i % 3 === 0 && i % 5 === 0) {
      console.log("FizzBuzz");
    } else if (i % 3 === 0) {
      console.log("FizzBuzz");
    } else if (i % 5 === 0) {
      console.log("Buzz");
    } else {
      console.log(i);
    }
  }
};

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以使用.toString()JS toString)更改字符串中的数字:

function printFizzBuzz(input) {

  // Your code goes here
  for (var i = 1; i <= 20; i++) {

    if (i % 3 === 0 && i % 5 === 0) {
      console.log("FizzBuzz");
    } else if (i % 3 === 0) {
      console.log("FizzBuzz");
    } else if (i % 5 === 0) {
      console.log("Buzz");
    } else {
      console.log(i.toString());
    }
  }
};

printFizzBuzz();

答案 1 :(得分:0)

如果我是面试官,我希望答案看起来更像这样

function printFizzBuzz(input) {

  // Your code goes here

  for (var i = 1; i <= 20; i++) {

    let by3 = i % 3
    let by5 = i % 5

    switch(0) {
      case by3 + by5:
        console.log("FizzBuzz")
        break

      case by3:
        console.log("Fizz")
        break

       case by5:
         console.log("Buzz")
         break

       default:
         console.log(i.toString())
      }
    }
  }
}

printFizzBuzz()

答案 2 :(得分:0)

看着问题,它不是在要求循环,而是在问传递给函数的任何值。因此答案应该更像这样

function printFizzBuzz(input) {

  // Your code goes here

  if (typeof input !== ‘number’) {
    return String(input)
  }

  let by3 = input % 3
  let by5 = input % 5

  switch(0) {
    case by3 + by5:
      return "FizzBuzz"

    case by3:
      return "Fizz"

    case by5:
      return "Buzz"

    default:
      return input.toString()
    }
  }
}