01/10/2018, 14:12
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ài liên quan
bạn return
array
hay returnreturnArray
?Thấy cái này có hàm sẵn mà ??
MDN Web Docs
Array.prototype.splice()
The splice() method changes the contents of an array by removing existing elements and/or adding new elements.
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
Có lẽ còn 1 cách nữa, viết prototype