瀏覽器Array改變原陣列方法原理及實現

2021-09-12 08:24:20 字數 2830 閱讀 8874

1.push()往陣列末尾新增元素,可一次新增多個

array.prototype.

push

=function()

return

this

.length;

}

2.pop()移除陣列中的最後乙個元素,引數沒有效果

array.prototype.

pop=

function()

3.shift()移除陣列最開始的元素,只能一次移除乙個,引數沒有效果

array.prototype.

shift

=function()

this

.length--

;return temp;

}

4.unshift()往陣列頭部新增元素,可一次新增多個

array.prototype.

unshift

=function()

for(

var i =

0; i < arguments.length; i ++

)return

this

.length;

}

5.sort()//用來排序陣列,可自定義

//排序過程:1.將陣列中的第乙個位置的元素與第二個元素位置比較

//如果第乙個元素大於第二個,則將兩個元素換位,

//如果第乙個元素小於第二個,則元素的位置不變

//此時再將第乙個位置的元素與第三個位置的元素比較

//一次遍歷以後,第二個位置的元素與第三個位置的元素比較

//規則如上直至第n-1個元素與第n個元素比較完為止,整個過程類似於選擇排序

//自定義sort方法如下

function

newsort

(x, y)

//使用自定義sort()

arr.

sort

(newsort)

;//特殊的方法,打亂原陣列,每次呼叫返回的結果都不一樣

function

mixturearr()

6.reverse()//將陣列倒置,即按原陣列排列順序的相反順序排列

array.prototype.

reverse

=function()

return

this

;}

7.splice()

//用來剪下陣列,引數可分三種,乙個引數,兩個引數,多個引數

//乙個引數或兩個引數時候的第乙個引數代表切的位置,可為負數,真正的位置為該負數加上陣列長度代表的位置

//如果代表真正位置的數還是為負數,則從第乙個元素開始

//如果第乙個引數的值大於陣列的長度,則相當於沒有切,返回空陣列。

//乙個引數的時候,該數為真實位置,從該位置開始切,直到陣列最後

//兩個引數的時候,第乙個引數代表切的開始位置,第二個引數代表要切的個數

//如果兩個引數的和大於陣列從第乙個引數開始所示位置到陣列最後的長度,則從第乙個引數表示的位置開始,擷取後面所有的元素

//多個引數的時候,第二個引數往後的所有引數,均為從切口位置要插入的元素

//該方法返回切下的陣列,原陣列為剩下的部分

array.prototype.

splice

=function()

}return splicepart;

}var index = arguments[0]

>=

0? arguments[0]

:(arguments[0]

+this

.length <0?

0: arguments[0]

+this

.length)

;var border = index + arguments[1]

<=

this

.length ? arguments[1]

:this

.length - index;

var current =0;

for(

var i = index; i < index + border; i ++)if

(arguments.length <=2)

this

.length =

this

.length - border;

}else

for(

var i =

0; i < argu_length; i++

)this

.length =

this

.length - border + argu_length;

}this

= splicepart;

return

this

;}

8.陣列去重

array.prototype.

unique

=function()

;var arr =

;var length =

this

.length;

for(

var i =

0; i < length; i ++)}

this

.length =0;

for(

var x in obj)

return

this

;}

瀏覽器Array不改變原陣列方法原理及實現

1.concat 連線兩個陣列,返回新的陣列array.prototype.concat function for var i 0 i arguments 0 length i return newarr 2.join 將陣列中的元素通過第乙個引數連線起來,如果沒有傳參,預設為逗號連線 array....

是否改變原陣列的陣列方法

改變原陣列的 shift 將第乙個元素刪除並且返回刪除元素,空即為undefined unshift 向陣列開頭新增元素,並返回新的長度 pop 刪除最後乙個並返回刪除的元素 push 向陣列末尾新增元素,並返回新的長度 reverse 顛倒陣列順序 sort 對陣列排序 splice splice...

js陣列方法之改變或不改變原陣列

pop 將引數從陣列尾部刪除 unshift 將引數新增到陣列頭部 shift 將引數從陣列頭部刪除 reverse 陣列倒序 sort 陣列排序 var arr 2 1,3 4,15 11,14 12 arr.sort a,b a b 1,2,3,4,11,12,14,15 arr.sort a,...