js實現乙個陣列的splice

2022-07-21 05:48:14 字數 1789 閱讀 3132

先來了解splice的用法

array.splice(start,deletecount,item...)

splice方法從array中移除乙個多個元素(會對原資料進行修改,而slice不會),並用新的item替換它們。引數start是從陣列array移除元素的開始位置。引數deletecount是要移除的個數(start,deletecount必填)。如果有額外的引數,那些item會插入到被移除元素的位置上。它返回乙個包含被移除元素的陣列。

例子:

var a = [1,2,3,4,5,6,8];

a.splice(1,2);

start引數為1,deletecount引數為2。那麼a陣列中下標為1的元素往後移除2個。

結果如下:

如果start引數大於陣列的長度,不會進行移除操作。

如果start引數小於0的話,那麼就會把start和陣列的長度進行相加。

例子:

var a = [1,2,3,4,5,6,8];

a.splice(-4,2);

-4+7 = 3,start變成了3

結果如下:

**如下:

var a = [1,2,3,4,5,6,8];

a.splice(-4,2);

console.log(a);

function.prototype.method= function

(name,func)

array.method('splice',function

(start,deletecount)

start = max(min(start,len),0);//

如果start執行了上面的判斷,但是還是小於0,那麼start最小值就是0,如果start大於陣列的長度,start就為陣列的長度

deletecount = max(min(typeof deletecount === 'number' ? deletecount:len,len - start),0);//

這邊就是控制deletecount的值的範圍,比0小那麼就為0,最陣列的長度還大,那麼就為陣列的長度和start引數的差值。

delta = insertcount - deletecount;//

用來判斷item元素的個數是否小於deletecount的個數

new_len = len + delta;//

改變後的陣列的長度

while(k

k += 1;

}shift_count = len - start - deletecount;//

陣列要移動的個數

if(delta < 0)

this.length =new_len;

}else

if(delta > 0)

this.length =new_len;

}for(k = 0; k < insertcount; k += 1)

return

result;

});

程式執行如下:

第一種情況delta<0

第二種情況delta>0

最後一種情況delta==0

js中如何實現乙個陣列對另乙個陣列的copy

前面發的幾篇文章講解了js陣列中的幾種操作,下面用這些方法來實現實現乙個陣列對另乙個陣列的copy。例 實現a陣列對b陣列的copy var b new array red blue green black pink var a new array 第一種方法 var b newarray red ...

js 陣列巢狀另乙個陣列

最近實現乙個功能,需要在js中在乙個陣列中巢狀另乙個陣列,即把arr1和arr2插入arr中,使得arr從變為arr n1 n2 n3 n4 n5 n6 如下所示 var arr1 n1 n2 n3 var arr2 n4 n5 n6 var arr arr n1 n2 n3 n4 n5 n6 由於...

實現乙個陣列追加主句

1.不改變資料型別 data為需要追加的資料 int intarr 嵌入迴圈得到的資料 int newintarr new int intarr.length 1 for int i 0 i2.從int向string新增資料,再從string轉換為int陣列 data為需要追加的資料 string ...