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
'코플릿 기록 > JavaScript' 카테고리의 다른 글
반복문 7번 (1) | 2023.01.16 |
---|---|
데일리코딩3 (거듭제곱문제) (0) | 2023.01.16 |
고차함수 31 ★★★ (0) | 2023.01.15 |
고차함수 30번 (0) | 2023.01.15 |
고차함수 29번 (0) | 2023.01.15 |