Jquery 陣列操作

2022-01-11 10:16:05 字數 4839 閱讀 8418

1、陣列的建立

var arrayobj = new array(); //建立乙個陣列

var arrayobj = new array([size]); //建立乙個陣列並指定長度,注意不是上限,是長度

var arrayobj = new array([element0[, element1[, ...[, elementn]]]]); 建立乙個陣列並賦值

要說明的是,雖然第二種方法建立陣列指定了長度,但實際上所有情況下陣列都是變長的,也就是說即使指定了長度為5,仍然可以將元素儲存在規定長度以外的,注意:這時長度會隨之改變。

2、陣列的元素的訪問

var testgetarrvalue=arrayobj[1]; //獲取陣列的元素值

arrayobj[1]= "這是新值"; //給陣列元素賦予新的值

3、陣列元素的新增

arrayobj. push([item1 [item2 [. . . [itemn ]]]]);// 將乙個或多個新元素新增到陣列結尾,並返回陣列新長度

arrayobj.unshift([item1 [item2 [. . . [itemn ]]]]);// 將乙個或多個新元素新增到陣列開始,陣列中的元素自動後移,返回陣列新長度

arrayobj.splice(insertpos,0,[item1[, item2[, . . . [,itemn]]]]);//將乙個或多個新元素插入到陣列的指定位置,插入位置的元素自動後移,返回""。

4、陣列元素的刪除

arrayobj.pop(); //移除最後乙個元素並返回該元素值

arrayobj.shift(); //移除最前乙個元素並返回該元素值,陣列中元素自動前移

arrayobj.splice(deletepos,deletecount); //刪除從指定位置deletepos開始的指定數量deletecount的元素,陣列形式返回所移除的元素

5、陣列的擷取和合併

arrayobj.slice(start, [end]); //以陣列的形式返回陣列的一部分,注意不包括 end 對應的元素,如果省略 end 將複製 start 之後的所有元素

arrayobj.concat([item1[, item2[, . . . [,itemn]]]]); //將多個陣列(也可以是字串,或者是陣列和字串的混合)連線為乙個陣列,返回連線好的新的陣列

6、陣列的拷貝

arrayobj.slice(0); //返回陣列的拷貝陣列,注意是乙個新的陣列,不是指向

arrayobj.concat(); //返回陣列的拷貝陣列,注意是乙個新的陣列,不是指向

7、陣列元素的排序

arrayobj.reverse(); //反轉元素(最前的排到最後、最後的排到最前),返回陣列位址

arrayobj.sort(); //對陣列元素排序,返回陣列位址

8、陣列元素的字串化

arrayobj.join(separator); //返回字串,這個字串將陣列的每乙個元素值連線在一起,中間用 separator 隔開。

tolocalestring 、tostring 、valueof:可以看作是join的特殊用法,不常用

9.過濾陣列

$.grep(array, callback, [invert]) 過濾陣列,此函式至少傳遞兩個引數(第三個引數為true或false,表示是否取反): 待過濾陣列和過濾函式. 過濾函式必須返回 true 以保留元素或 false 以刪除元素

grep(array,callback,invert)

擴充套件:1.使用grep刪除指定值

var arr = [1, 2, 3, 4, 5

];var removeitem = 2

; arr =$.grep(arr, function(value) );

2.陣列遍歷

不同於例遍 jquery 物件的 $().each() 方法,此方法可用於例遍任何物件(不僅僅是陣列哦~). **函式擁有兩個引數:第乙個為物件的成員或陣列的索引, 第二個為對應變數或內容. 如果需要退出 each 迴圈可使**函式返回 false, 其它返回值將被忽略

var _mozi=['

墨家','

墨子','

墨翟','

兼愛非攻

','尚同尚賢

']; //

本文所用到的陣列, 下同

$.each(_mozi,function(key,val));

3. $.map(array,[callback])按給定條件轉換陣列 [一般]

解釋:作為引數的轉換函式會為每個陣列元素呼叫, 而且會給這個轉換函式傳遞乙個表示被轉換的元素作為引數. 轉換函式可以返回轉換後的值、null(刪除陣列中的專案)或乙個包含值的陣列, 並擴充套件至原始陣列中.

這個是個很強大的方法,但並不常用. 它可以根據特定條件,更新陣列元素值,或根據原值擴充套件乙個新的副本元素.

var _maparra=$.map(_mozi,function(val));

var _maparrb=$.map(_mozi,function(val));

var _maparrc=$.map(_mozi,function(val));

alert(

'在每個元素後面加\'[新加]\'字元後的陣列為:

'+_maparra);

alert(

'只給元素 墨子 新增字元後的陣列為:

'+_maparrb);

alert(

'為原陣列中每個元素,擴充套件乙個新增字元\'[新加]\'的元素,返回的陣列為

'+_maparrc);

4 .$.inarray(val,array)判斷值是否存在於陣列中[常用]

解釋: 確定第乙個引數在陣列中的位置, 從0開始計數(如果沒有找到則返回 -1 ).

記得indexof()方法了嗎?

indexof()返回字串的首次出現位置,而$.inarray()返回的是傳入引數在陣列中的位置,同樣的,如果找到的,返回的是乙個大於或等於0

的值,若未找到則返回-1.

var _exist=$.inarray('墨子'

,_mozi);

var _inexistence=$.inarray('衛鞅'

,_mozi)

if(_exist>=0

)if(_inexistence<0

)

5 .$.merge(first,second)合併兩個陣列[一般]

解釋: 返回的結果會修改第乙個陣列的內容——第乙個陣列的元素後面跟著第二個陣列的元素.

這個方法是用jquery的方法替代原生concat()方法, 但功能並沒有concat()強大, concat()可以同時合併多個陣列.

//

原生concat()可能比它還簡潔點

_mozinew=$.merge(_mozi,['

鬼谷子','

商鞅','

孫臏','

龐涓','

蘇秦','張儀'

])alert(

'合併後新陣列長度為:

'+_mozinew.length+'

. 其值為:

'+_mozinew);

6 .$.unique(array)過濾陣列中重複元素[不常用]

解釋: 刪除陣列中重複元素. 只處理刪除dom元素陣列,而不能處理字串或者數字陣列.

var _h2arr=$.makearray(h2obj);

//將陣列_h2arr重複一次

_h2arr=$.merge(_h2arr,_h2arr);

var _curlen=_h2arr.length;

_h2arr=$.unique(_h2arr);

var _newlen=_h2arr.length;

alert(

'陣列_h2arr原長度值為:

'+_curlen+'

,過濾後為:

'+_newlen+'

.共過濾

'+(_curlen-_newlen)+'

個重複元素

')

7. $.makearray(obj) 將類陣列物件轉換為陣列[不常用]

解釋: 將類陣列物件轉換為陣列物件, 類陣列物件有 length 屬性,其成員索引為0至 length-1.

這是個多餘的方法, 無所不能的$本來就包含了這個功能. jquery官網上解釋的非常模糊. 其實, 它就是將某個類陣列物件(比如用getelementsbytagname獲取的元素物件集合)轉換成陣列物件.

var _makearr=$.makearray(h2obj);

alert(

'h2元素物件集合的資料型別轉換為:

'+_makearr.constructor.name);//

輸出array

8. $(dom).toarray()將所有dom元素恢復成陣列[不常用]

解釋: 把jquery集合中所有dom元素恢復成乙個陣列; 並不常用的方法, 個人甚至覺得它和$.makearray一樣多餘.

var _toarr=$('h2'

).toarray();

alert(

'h2元素集合恢復後的資料型別是:

'+_toarr.constructor.name);

參考:

Jquery 陣列操作

在jquery中處理json陣列的情況中遍歷用到的比較多,但是用新增移除這些好像不是太多。今天試過json i remove json.remove i 之後都不行,看網頁的dom物件中好像json資料是以陣列的形式出現的,查閱了下相關js中陣列的操作一試果然很爽。記錄下來。1 陣列的建立 var ...

Jquery陣列操作技巧

jquery對陣列的操作技巧。1.each array,callback 遍歷 常用 解釋 不同於例遍 jquery 物件的 each 方法,此方法可用於例遍任何物件 不僅僅是陣列哦 函式擁有兩個引數 第乙個為物件的成員或陣列的索引,第二個為對應變數或內容.如果需要退出 each 迴圈可使 函式返回...

jquery 工具 陣列物件操作

each array,function i,n var checkboxs new array contents 查詢內部所有子節點,不加的話find只會返回乙個匹配的結果。contentiframe.document 獲取框架內容 checkboxs contentiframe.document ...