reduce 메소드의 initialValue를 사용하면 불필요한 조건을 없앨 수 있다.
function sumOfArraysInArray(arr) {
// 1차원 배열로 만들기
let flat = arr.reduce(function (acc, curr) {
return acc.concat(curr);
});
// number 타입의 요소만 취하자
let onlyNum = flat.filter(function (el) {
return typeof el === 'number';
});
// onlyNum가 빈 배열일 경우 0을 리턴하자
if (onlyNum.length === 0) {
return 0;
}
// 모든 수의 합을 더해서 리턴하자
return onlyNum.reduce(function (acc, curr) {
return acc + curr;
});
}
위 코드에서 initialValue만 잘 사용해도 if문을 없앨 수 있다.
function sumOfArraysInArray(arr) {
// 1차원 배열로 만들기
let flat = arr.reduce(function (acc, curr) {
return acc.concat(curr);
});
// number 타입의 요소만 취하자
let onlyNum = flat.filter(function (el) {
return typeof el === 'number';
});
// 모든 수의 합을 더해서 리턴하자
return onlyNum.reduce(function (acc, curr) {
return acc + curr;
}, 0)
}
return func; // func 함수 자체를 리턴한다
return func(); // func 함수를 실행시킨 값을 리턴한다
다른 사람들이 보기에도 이해하기 쉬워야 한다. 항상 가독성을 고려하자!
reduce
메소드 initialValue 값 사용하기find
, sort
, some
, every