프로그래머스
function solution(absolutes, signs){
return absolutes.map((el,idx)=>{
if(!signs[idx]) return (-1)*el;
return el;
}).reduce((acc,cur)=> {return acc+cur;},0);
function solution(absolutes, signs){
return absolutes.reduce((acc,cur,idx)=>{
if(!signs[idx]) return acc+(-1)*cur;
return acc+cur;
},0)
}
function solution(absolutes, signs){
return absolutes.reduce((acc,cur, i)=> acc + (val * (signs[i]?1:-1)),0);
}
Array.prototype.reduce()
arr.reduce(callback[, 초기값])
- callback
배열의 각 요소에 대해 실행할 함수로 네가지 인수를 받을 수 있다.
- accumulator
콜백의 반환값이 누적된 값으로, reduce의 두번째 인자인 초기값이 있다면 accumulator는 초기값이다. 없다면 첫번째 요소.- currentValue
처리할 현재 요소.- currentIndex
optional
처리할 현재요소의 인덱스로 초기값을 제공한 경우, 0부터 시작하고, 아니라면 1부터 시작한다.- array
optional
reduce()를 호출한 배열- 초기값
callback의 최초 호출에서 첫번째 인수(acc)에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫번째 요소를 사용한다.- 반환값
누적 계산의 결과값을 리턴한다.
다른 분의 풀이에서도 reduce만 사용했는데, if,else로 조건을 분기하지 않고 삼항연산자로 작성해 한줄로 코드를 완성한 것이 인상적이었다. 같은 풀이방법이지만 좀 더 간결하게 표현하는 방법을 고민해봐야겠다.