2016-06-01 76 views
-4

通過splice .Tried在刪除陣列值套牢刪除和拼接不工作..如何通過拼接刪除數組值?

var arr = []; 
arr[2] = 22; 
arr[5] = 3; 
arr[99] = 3343; 
for(var i in arr){ 
    if(i != 2){ 
    arr.splice(i,1); 
    } 
    //delete arr[i]; 
} 
console.log(arr);// [2: 22, 98: 3343] 
//wanted [2:22] 

我想刪除所有除指數2,它只是刪除一個。

+0

你是什麼意思刪除數組值?刪除數組中的項目?如果你只想清空一個數組,你可以使用不同的方式。 (見本帖以後)(http://stackoverflow.com/a/1232046/1504480) –

+0

對於(var i = 0; i

+0

' while(arr.length!= 0){arr.splice(0,1); }' –

回答

1

沒有在剪接循環需要的,你可以使用:arr.splice(0,arr.length)

但如果你只想刪除所有元素只是做arr=[]

替代方法是循環& pop

while(arr.length > 0) { 
    arr.pop(); 
} 
0

在這種情況下,你可能需要獲得由項目刪除順序項從一個數組的中間開始,你應該以倒序遍歷爲了不讓變動指數在你面前。

var arr = new Array(10).fill("").map((e,i) => e = "item:" +i), 
 
     i = 7; 
 
console.log(JSON.stringify(arr)); 
 
while (i>2) console.log(JSON.stringify(arr.splice(i--,1))); // splice item at index i and decrease i by one 
 
console.log(JSON.stringify(arr));