前言:js數組刪除一般采用數組的 splice 方法和 delete 方法,但是采用 delete 方法后直接數組.kength 來獲取數組長度是獲取不了真實長度的,下面詳細講解一下。
一、splice 方法
splice ( index , len , [ item ] ) 該方法會改變原始數組。
index:數組開始下標。len:替換/刪除的長度。item:替換的值,刪除操作的話 item為空
舉例
//清空整個數組 arr.splice(0, arr.length); console.log(arr); //刪除一個元素 var arr = ["11", "22", "33", "44", "55"]; arr.splice(1, 1); console.log(arr); //刪除一個,增加兩個 arr.splice(1, 1, "34", "43"); console.log(arr);
二、delete 刪除數組元素
只是被刪除的元素變成了 undefined,其他的元素的鍵值還是不變。
var arr = ["11", "22", "33", "44", "55"]; console.log(arr); delete arr[2]; console.log(arr); for(var i = 0; i < arr.length; i++){ console.log(arr[i]); }
打印出來的結果:可以看出 delete 方式不會改變數組的長度,而且刪除的元素只會變成 undefined。
這時想獲取數組真實長度,可以采取下面這種方式:
var length = 0; for(var a in arr){ length ++; } console.log("數組真實長度" + length);