diff --git a/how-deep-do-these-trees-even-go/index.js b/how-deep-do-these-trees-even-go/index.js new file mode 100644 index 0000000..4120b76 --- /dev/null +++ b/how-deep-do-these-trees-even-go/index.js @@ -0,0 +1,20 @@ +// https://www.codewars.com/kata/how-deep-do-these-trees-even-go/train/javascript + +function arrayDeepness(arr) { + let deep = (arr, lvl, fn) => { + if (arr && arr.map) { +// arr.map(el => deep(el, lvl + 1, fn)); + for (let i = 0; i < arr.length; ++i) { + deep(arr[i], lvl + 1, fn); + } + } else { + fn(lvl); + } + }; + let res = []; + deep(arr, 0, lvl => res.push(lvl)); + let min = Math.min(...res); + let max = Math.max(0, ...res); + let mean = +(res.reduce((a, b) => a + b, 0) / res.length).toFixed(3); + return {min, max, mean}; +} \ No newline at end of file