(엄밀히 말하면 전혀 다르지만) 3 6 9 게임과 유사한 구현!, 아무튼 3으로만 나눠지는 수면 "Fizz", 5로만 나눠지는 수면 "Buzz", 3과 5로 동시에 나눠지는 수면 "FizzBuzz"를 나타내는 수열 리스트를 반환하면 된다.
말하는 것 그대로를 코드로 구현하면 되는, 어렵지 않은 문제였다.
var fizzBuzz = function(n) {
// [1, 2, 3, 4, ..., n]으로 초기화시켜주는 작업
let answer = Array.from({length: n}, (_, i) => i + 1)
// map으로 돌면서 조건문으로 처리해서 return 해버리기
return answer.map((val)=>{
if (val%3==0){
if (val%5==0){
return "FizzBuzz"
} else{
return "Fizz"
}
} else if (val%5==0){
return "Buzz"
}
return val.toString()
})
};
[1, 2, 3, 4, 5]
[1, 2, 3, 4, ..., n]
와 같이 n까지의 수로 Array를 초기화시키고 싶을 때,
Python에서 list apprehension을 썼듯이, JavaScript도 for문을 돌리지 않고 뭔가 할 수 있지 않을까하고 찾아본 결과,
Array.from({length: n}, (_, i) => i+1)
아주 유용할 것 같다!