Nhóm các số cùng loại trong JavaScript
Chúng ta có một mảng số như sau:
const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];
Chúng ta cần viết một hàm JavaScript đếm các nhóm liên tiếp của các số không âm (số dương và 0) trong mảng.
Ở đây chúng ta có nhóm không âm liên tiếp từ chỉ số 3 đến 3 (chỉ một phần tử, nhưng vẫn là một cụm) tạo thành một nhóm và sau đó từ 9 đến cuối mảng tạo thành nhóm thứ hai.
Vì vậy, với mảng này, hàm nên trả về 2.
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
const arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0];
const positiveClusters = arr => {
return arr.reduce((acc, val, ind) => {
if(val >= 0 && (arr[ind+1] < 0 || typeof arr[ind+1] === 'undefined')){
acc++;
};
return acc;
}, 0);
};
console.log(positiveClusters(arr));
Đầu ra
Kết quả trong console sẽ là:
2