js如何移除陣列中指定索引的項

antzone發表於2017-03-12

在Array物件中有給定的函式可以刪除陣列中指定的元素,雖然非常好用,但是總感覺看不到摸不著的比較彆扭,下面就分享一個自定義的刪除陣列指定索引值元素的函式,希望給大家一個全新的思路。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var array=[]; 
array[0]="螞蟻部落一"; 
array[1]="螞蟻部落二"; 
array[2]="螞蟻部落三"; 
array[3]="螞蟻部落四"; 
array[4]="螞蟻部落五"; 
function remove(array,index){ 
  if(index<=(array.length-1)){ 
    for(var i=index;i<array.length;i++){ 
      array[i]=array[i+1]; 
    } 
  }
  else{ 
    throw new Error('超出最大索引!'); 
  } 
  array.length=array.length-1; 
  return array; 
} 
console.log(remove(array,2));

以上程式碼中,宣告一個remove()函式,此函式具有兩個引數,第一個引數是陣列物件,第二個引數是要刪除陣列元素的索引值,所以上面的程式碼能夠刪除陣列中的第三個元素,並輸出刪除元素戶的陣列。實現的原理也非常的簡單,做一下簡單的介紹:

remove()函式首先判斷傳入的索引值是否大約陣列的最大索引值array.length-1,如果大於則丟擲錯誤,否則的話則將使用for迴圈從索引值i開始進行遍歷,將索引值為i的陣列值設定為低i+1項的,依次類推,原理大體如此,如有任何問題可以跟帖留言。

相關文章