Create a function with two arguments that will return an array of the first (n) multiples of (x).
Assume both the given number and the number of times to count will be positive numbers greater than 0.
Return the results as an array (or list in Python, Haskell or Elixir).
Examples:
countBy(1,10) === [1,2,3,4,5,6,7,8,9,10]
countBy(2,5) === [2,4,6,8,10]
function countBy(x, n) {
return new Array(n).fill().map((d, i) => (i + 1) * x);
}
알고리즘 29에서 처음 알게 되었던 new Array(n).fill().map()
을 써먹어보았다!
다른 솔루션들 중에서도 눈에 띄는 게 있었다.
Array.from
: 유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운Array 객체를 만듭니다.
문자열을 배열로 만들 때 써보았던 것 같은데 mdn에서
위와 같은 조건일 때는 새 배열을 반들 수도 있다고 한다. 길이까지 정할 수 있다니 이녀석도 똑똑하고 자주 쓸 것 같다. 메모메모 🤓
const countBy = (x, n) => Array.from({length: n}, (v, k) => (k + 1) * x)
그리고 아래는 spread로 배열을 만들고 나처럼 맵핑한 것이다. 흠 진짜 다양한 솔루션이 있는 것 같아 신기하다다!!😆👌
const countBy = (x, n) =>
[...Array(n)].map((_, idx) => ++idx * x);