function solution(absolutes, signs) {
var answer = 0;
absolutes.map((v,i)=>{if(signs[i]){ // 1
answer+=v; // 2
}else{
answer-=v; // 3
}
})
return answer; // 4
}
1 번 주어진 절댓값 배열을 순회하므로 map함수를 사용하고 absolutes와 signs의 길이는 같으므로 index 매개변수도 함께 사용할 수 있다.
2 번 if문을 통해 signs가 true인 경우 양수를 의미한다고 적혀있으므로 더해주고
3 번 if문을 통과하지 못한 경우 음수를 의미하므로 빼준다.
4 번 반환값을 주면 끝.
// 좋은 코드
function solution(absolutes, signs) {
return absolutes.reduce((acc, val, i) => acc + (val * (signs[i] ? 1 : -1)), 0); // 1
}
1 번 어차피 총 합을 구하는 것이므로 reduce 함수를 통해 acc 값에 계속 더해준다.
val값은 value이므로 absolute의 값이 순서대로 들어오고 signs[i]는 삼항연산자를 통해 val과 곱하게 되는데 양수의 경우 1을 곱해주고 음수의 경우 -1을 곱해준다.
개인적으로 좋지만 읽기 좋은지는 잘 모르겠다.