Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một mảng các giá trị có thể chứa một số 0. Hàm sẽ điều chỉnh mảng sao cho tất cả các số 0 được đẩy về cuối và tất cả các phần tử khác 0 giữ nguyên vị trí tương đối của chúng.
Ví dụ
Dưới đây là mã nguồn:
const arr = [5, 0, 1, 0, -3, 0, 4, 6];
const moveAllZero = (arr = []) => {
const res = [];
let currIndex = 0;
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(el === 0){
res.push(0);
}else{
res.splice(currIndex, undefined, el);
currIndex++;
};
};
return res;
};
console.log(moveAllZero(arr));Kết quả
Kết quả đầu ra trong console:
[ 5, 1, -3, 4, 6, 0, 0, 0 ]