본문으로 바로가기

언더바 (_)

category JavaScript 2024. 12. 7. 20:21

내적(프로그래머스)

 

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다.  a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이 때 a와 b의 내적은 a[0] * b[0] + a[1] * b[1] + ... + a[n - 1] * b[n - 1]입니다. (n은 a, b의 길이)

 

맨 처음에는 reduce를 활용해서 누적값을 구하면 되지 않을까 생각했는데

a.reduce((acc, cur, i) => {
	acc += cur;
}, initial)

 

매개변수의 cur이 순회중인 배열 a의 값이라 저기에 +b[i]를 사용하게 되면 reduce의 규칙을 따르지 않는걸까 해서 사용하지 않고 for을 사용했습니다.

function solution(a, b) {
    var answer = 0;
    for(i = 0; i < a.length; i++){
        answer += a[i] * b[i]; 
    }
    return answer;
}

 

다른 사람의 풀이를 보았는데

function solution(a, b) {
    return a.reduce((acc, _, i) => acc += a[i] * b[i], 0);
}

 

이처럼 reduce를 사용하고 매개변수로 _를 주었습니다.

 

언더바 (_) ?

언더바 (_)는 따로 기능이 존재하는 것이 아니라 사용되지 않는 매개변수를 나타내는 관습입니다. 따라서 위의 코드에서는 현재 값을 뜻하는 cur을 사용하지 않고  a[i]와 b[i]를 사용하기 때문에 매개변수에 _를 사용해 표시합니다.