Array Deep Count ( 6 kyu )
문제
Array.prototype.length will give you the number of top-level elements in an array.
Your task is to create a function deepCount that returns the number of ALL elements within an array, including any within inner-level arrays.
For example:
deepCount([1, 2, 3]);
//>>>>> 3
deepCount(["x", "y", ["z"]]);
//>>>>> 4
deepCount([1, 2, [3, 4, [5]]]);
//>>>>> 7
배열에서 내부의 배열 인자개수까지 모두 세는 문제
풀이
function deepCount(a){
let count = 0;
const recursion = arr => {
count += arr.length;
for ( let i of arr ) {
if ( Array.isArray(i) ) {
recursion(i);
}
}
}
recursion(a);
return count;
}
재귀를 통해 인자가 배열이면 함수를 다시 호출하는 방법
다른 사람의 풀이
function deepCount(a){
return a.reduce((s,e)=>s+(Array.isArray(e)?deepCount(e):0),a.length);
}
위에 있는 코드를 압축해놓으면 딱 이모양인데 멋있는 코드