Vấn đề
Chúng tôi bắt buộc phải viết một hàm JavaScript nhận vào một mảng phần tử lồng nhau và trả về tổng số phần tử có trong mảng.
Đầu vào
const arr = [1, 2, [3, 4, [5]]];
Đầu ra
const output = 7;
Vì các phần tử ở cấp 1 là 2, các phần tử ở cấp 2 là 2 và các phần tử ở cấp 3 là 1, Do đó tổng số sâu là 7.
Ví dụ
Sau đây là mã -
const arr = [1, 2, [3, 4, [5]]]; const deepCount = (arr = []) => { return arr .reduce((acc, val) => { return acc + (Array.isArray(val) ? deepCount(val) : 0); }, arr.length); }; console.log(deepCount(arr));
Giải thích mã
Chúng tôi đã sử dụng phương thức Array.prototype.reduce () để lặp qua mảng và nếu tại bất kỳ lần lặp nào, chúng tôi gặp một mảng lồng nhau, chúng tôi gọi một cách đệ quy hàm của mình.
Đầu ra
7