Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm sâu phần tử mảng lồng nhau trong JavaScript

Mô tả vấn đề

Chúng ta cần viết hàm JavaScript nhận vào mảng lồng nhau và trả về số lượng phần tử đếm sâu (deep count).

Đầu vào

const arr = [1, 2, [3, 4, [5]]];

Đầu ra

const output = 7;

Vì cấp 1 có 2 phần tử, cấp 2 có 2, cấp 3 có 1 → tổng 7.

Ví dụ minh họa

Mã thực hiện (reduce + đệ quy):

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ã

Dùng Array.prototype.reduce() duyệt mảng, nếu gặp mảng lồng thì gọi đệ quy.

Đầu ra

Kết quả trong console:

7