코플릿 기록/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