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

Đếm cụm số không âm liên tiếp - JavaScript

Viết hàm đếm số cụm (cluster) liên tiếp của các số không âm (≥ 0) trong mảng.

Ví dụ

Mảng: [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0]

Cụm 1: chỉ số 3 (giá trị 0)

Cụm 2: chỉ số 9-11 (0, 1, 0)

Kết quả: 2 cụm

Giải pháp

Mã triển khai:

const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];

const positiveClusters = arr => 
  arr.reduce((acc, val, i) => {
    // Kết thúc cụm: val >= 0 VÀ (phần tử sau < 0 HOẶC hết mảng)
    if (val >= 0 && (arr[i+1] < 0 || i === arr.length - 1)) {
      acc++;
    }
    return acc;
  }, 0);

console.log(positiveClusters(arr));

Kết quả

Đầu ra trong console:

2