Computer >> Máy Tính >  >> Lập trình >> Javascript

Đếm sâu các phần tử của một mảng sử dụng JavaScript

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