정수 배열 numbers
가 매개변수로 주어집니다. numbers
의 각 원소에 두배한 원소를 가진 배열을
return 하도록 solution 함수를 완성해주세요.
numbers | result |
---|---|
[1, 2, 3, 4, 5] | [2, 4, 6, 8, 10] |
[1, 2, 100, -99, 1, 2, 3] | [2, 4, 200, -198, 2, 4, 6] |
function solution(numbers) {
return numbers.map(item => item * 2);
}
map 메서드를 호출한 numbers요소를 *2를 하고
map은 반환값이 새로 구성한 배열이므로 바로 return 하였다.
function solution(numbers) {
return numbers.reduce((a, b) => [...a, b * 2], []);
}
위의 해결 방법은 reduce 메서드를 사용 하였으며
reduce의 2번째 인자는 초기값으로 []
지정하고 콜백 함수에서 스프레드 문법으로
초기값의 배열에 담긴 값들은 배열에 담고 numbers의 현재 index에 있는 값 2를 곱하여 배열에 담는 것을
반복하고 return 한다.
문제를 풀고 후기
위 문제를 푸는데 많은 방법이 있겠지만 map으로 문제를 해결 하는 방법이 가장 가독성이 좋아보인다.
하지만 항상 다른 방법도 머리속에서 생각하는 습관을 길르자.