코플릿 기록/JavaScript
고차함수32번
뭉지야
2023. 1. 15. 00:44
728x90
#문제
2차원 배열(배열을 요소로 갖는 배열)을 입력받아 모든 수(number)의 합을 리턴해야 합니다.
합을 구할 때 number 타입만 고려해야 합니다.
#예시
let output = sumOfArraysInArray([
[1, 2],
[undefined, 4, '5'],
[9, 'hello'],
]);
console.log(output); // --> 16
#정답
function sumOfArraysInArray(arr) {
//배열안에 배열
//이건 일단 배열을 다 합쳐서 하나의 배열로 만들자
let newarr = arr.reduce((acc, cur) => acc.concat(cur));
return newarr.reduce((acc, cur) => {
if (typeof cur === 'number'){
return acc+cur;
}
return acc;
}, 0)
}
function sumOfArraysInArray(arr) {
return arr.reduce((acc, curr) => acc.concat(curr), [])
.filter(item => typeof item === 'number')
.reduce((acc,curr) => acc+curr, 0);
}
function sumOfArraysInArray(arr) {
return arr.reduce((acc, cur) => {
return acc.concat(cur);
}).filter(el => typeof el === 'number').reduce((acc,cur) => acc + cur, 0);
}
728x90