배열 두 배 만들기

무과장·2023년 5월 22일
0

CodingTest_JavaScript

목록 보기
5/8


나의 첫 번째 답

function solution(numbers) {
    var answer = [];
    for(i of numbers){
        return numbers
    }
}

이렇게 하면 입력값이 잘 나오는데 여기에 *2 하면 되는 거 아닐까?

안 나온다.

이 문제를 풀면서 여기에서 '그 의문을 해결하고 가야겠다.(클릭)' 생각했다.

사실 여기서 for...of를 사용하기는 무리가 있다고 본다. 배열의 길이도 정해져있지 않기 때문이다.

그렇다면 배열을 직접적으로 조작할 수 있는 메서드는 뭐가 있을까?

map()메서드에 대해서 알고 싶다면? 클릭

오케이! 이제 배운 걸 적용해보자.
나의 풀이

function solution(numbers) {
    return numbers.map(a => a*2) ;
}

성공했다!

성공 후 다른 사람의 풀이를 보는데 .reduce메서드를 사용한 사람이 많다.
reduce를 사용한 사람들의 풀이

function solution(numbers) {
    return numbers.reduce((a, b) => [...a, b * 2], []);
}

왠지 뒤에 문제에서도 reduce가 나올 삘이다.
지금 알아놔야겠다.

reduce()메서드란 뭘까?클릭

근데 위에서 쓰인 '...'이 뭘까?
이건 구조 분해 할당이라고 하는데 구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식이라고 한다.

let a, b, rest;
[a, b] = [10, 20];

console.log(a);
// Expected output: 10

console.log(b);
// Expected output: 20

[a, b, ...rest] = [10, 20, 30, 40, 50];

console.log(rest);
// Expected output: Array [30, 40, 50]
profile
느리더라도 꾸준히 확실하게.

0개의 댓글