diff --git a/labs/lab2/desc.json b/labs/lab2/desc.json new file mode 100644 index 0000000..620b797 --- /dev/null +++ b/labs/lab2/desc.json @@ -0,0 +1,7 @@ +{ + "number": "2", + "task": "Подсчитайте общее количество массивов внутри данного массива. Т.к. конвертирование строки в многомерный массив, не самая тривиальная задача, то исходный массив задается внутри кода.\narr = [[1, 2, 3, [1, 2, 3]], [[[]]], 3]", + "vars": [[]], + "scriptpath": "labs/lab2/main.js", + "complete": true +} \ No newline at end of file diff --git a/labs/lab2/main.js b/labs/lab2/main.js new file mode 100644 index 0000000..420a430 --- /dev/null +++ b/labs/lab2/main.js @@ -0,0 +1,22 @@ +"use strict"; + +function main(formName) { + let result = document.getElementById("result"); + let arr = [ + [1, 2, 3, [1, 2, 3]], + [[[]]], + 3, + ]; + + result.textContent = "Результат: " + countArr(arr); +} + +function countArr(item, level = 0) { + if (item instanceof Array) { + return (level > 0 ? 1 : 0) + + item.map( + (value, index) => countArr(value, level + 1) + ).reduce((a, b) => a + b, 0) + } + return 0; +}