https://programmers.co.kr/learn/courses/30/lessons/76501
function solution(absolutes, signs) {
let answer=0;
for(let i=0; i<absolutes.length; i++){
if(signs[i]) answer+=absolutes[i];
else answer-=absolutes[i];
}
return answer;
}
배열을 더하는 문제에서는 Array.reduce 메소드를 활용하자! for문을 활용하는 것보다 훨씬 간단하게 끝낼 수 있다.
function solution(absolutes, signs) {
return absolutes.reduce((acc, v, i) =>acc + (v*(signs[i]? 1 : -1)), 0);
}
오류코드는 다음과 같다.
function solution(absolutes, signs) {
return absolutes.reduce((acc, v, i) => {
acc + (v*(signs[i]? 1 : -1));
}, 0);
}
오류를 해결하면 다음과 같다.
function solution(absolutes, signs) {
return absolutes.reduce((acc, v, i) => {
return acc + (v*(signs[i]? 1 : -1));
}, 0);
}
콜백함수에서 {}
를 넣으면, 한줄이라도 반드시 return 해주기!
만약, 한줄이여서 중괄호를 생략한다면, 코드2처럼 return 생략 가능하다.
중괄호의 뜻은 코드가 한줄 이상이라는 뜻이기 때문에, 한줄 이상의 코드 중 무엇을 return해줄지를 지정해줘야한다. 한줄이라도 예외없음!
10/25
reduce 사용해보기
if(signs[i]==='true')로하면 안됨. signs안에 들어가있는 true, false는 문자가 아니라 boolean형태이기 때문에 if(signs[i])와 같은 형태로 작성하면 if(true)라는 소리와 같음.