알고리즘 45 - Count by X
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
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에서
- 유사 배열 객체 (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);
Author And Source
이 문제에 관하여(알고리즘 45 - Count by X), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@pearpearb/알고리즘-45-Count-by-X저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)