Mô tả bài toán
Xóa các số 0 ở đầu mảng tại chỗ (in-place). Chỉ xóa leading zeros, giữ 0 ở giữa/cuối.
Ví dụ minh họa
const arr = [0, 0, 0, 14, 0, 63, 0];
const removeLeadingZero = arr => {
while (arr.indexOf(0) === 0) {
arr.shift();
}
};
removeLeadingZero(arr);
console.log(arr);
Kết quả
[ 14, 0, 63, 0 ]
Phân tích
indexOf(0) === 0 kiểm tra phần tử đầu có phải 0 không. shift() xóa phần tử đầu. Lặp cho đến khi phần tử đầu != 0.
Cách không thay đổi mảng gốc
const removeLeadingZero = arr => {
const firstNonZero = arr.findIndex(x => x !== 0);
return firstNonZero === -1 ? [] : arr.slice(firstNonZero);
};