알고리즘 45 - Count by X

jabae·2021년 10월 28일
0

알고리즘

목록 보기
45/97

Q.

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]

A)

function countBy(x, n) {
  return new Array(n).fill().map((d, i) => (i + 1) * x);
}

other

알고리즘 29에서 처음 알게 되었던 new Array(n).fill().map()을 써먹어보았다!
다른 솔루션들 중에서도 눈에 띄는 게 있었다.
Array.from : 유사 배열 객체나 반복 가능한 객체를 얕게 복사해 새로운Array 객체를 만듭니다.
문자열을 배열로 만들 때 써보았던 것 같은데 mdn에서

  • 유사 배열 객체 (length 속성과 인덱싱 된 요소를 가진 객체)
  • 순회 가능한 객체 (Map, Set 등객체의 요소를 얻을 수 있는 객체)

위와 같은 조건일 때는 새 배열을 반들 수도 있다고 한다. 길이까지 정할 수 있다니 이녀석도 똑똑하고 자주 쓸 것 같다. 메모메모 🤓

 const countBy = (x, n) => Array.from({length: n}, (v, k) => (k + 1) * x)

그리고 아래는 spread로 배열을 만들고 나처럼 맵핑한 것이다. 흠 진짜 다양한 솔루션이 있는 것 같아 신기하다다!!😆👌

const countBy = (x, n) =>
 [...Array(n)].map((_, idx) => ++idx * x);
profile
it's me!:)

0개의 댓글