Javascript: mảng bị thay đổi không như mong muốn qua hàm

//Mình muốn viết 1 hàm splice: 
function splice(array, start, deleteCount) {
     var returnArray = [];
     while(deleteCount != 0) {
         returnArray[returnArray.length] = array[start]; // gán array[start] vào returnArray
         delete array[start]; 
         array = Object.values(array); // xoá empty/undefined element trong array sau delete
         deleteCount--;
    }
    console.log(array) // [1,2]
    return returnArray;
}
var array = [1,2,3,4]
splice(array,2,2);
console.log(array); // [1, 2, empty, 4];

array trong hàm splice là [1,2] nhưng array ngoài hàm thì hiện [1,2, empty,4]. Mình không biết taị sao ai giải thích với, cảm ơn

bạn return array hay return returnArray?

Thấy cái này có hàm sẵn mà ??

Cách 1
array = splice(array,2,2);
Cách 2: JavaScript không có pass by reference nên phải pass cho nó 1 cái object
var param = {
array: array,
start: 2,
deleteCount: 2
}
splice(param );
Tất nhiên là cũng sửa hàm splice lại rồi :smiley:
Có lẽ còn 1 cách nữa, viết prototype

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?