jq 組裝數組_Jquery 數組操作

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)

array:待過濾數組;

callback:處理數組中的每個元素,并過濾元素,該函數中包含兩個參數,第一個是當前數組元素的值,一個是當前數組元素的下標,即元素索引 值,,此函數應返回一個布爾值 如$.grep(arr,function(value,index){return index>1;});。另外,此函數可設置為一個字符串,當設置為字符串時,將視為“lambda-form”(縮寫形式?),其中 a 代表數組元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }”

invert:布爾型可選項,默認值false,值為true或false。 如果 “invert” 為 false 或為設置,則函數返回數組中由過濾函數返回 true 的元素,當”invert” 為 true,則返回過濾函數中返回 false 的元素集。

擴展:

1.使用grep刪除指定值

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

var removeItem = 2;

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

return value !=removeItem;

});

2.數組遍歷

不同于例遍 jQuery 對象的 $().each() 方法,此方法可用于例遍任何對象(不僅僅是數組哦~). 回調函數擁有兩個參數:第一個為對象的成員或數組的索引, 第二個為對應變量或內容. 如果需要退出 each 循環可使回調函數返回 false, 其它返回值將被忽略

var _mozi=['墨家','墨子','墨翟','兼愛非攻','尚同尚賢']; //本文所用到的數組, 下同

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

//回調函數有兩個參數,第一個是元素索引,第二個為當前值

alert('_mozi數組中 ,索引 : '+key+'對應的值為: '+val);

});

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

解釋:作為參數的轉換函數會為每個數組元素調用, 而且會給這個轉換函數傳遞一個表示被轉換的元素作為參數. 轉換函數可以返回轉換后的值、null(刪除數組中的項目)或一個包含值的數組, 并擴展至原始數組中.

這個是個很強大的方法,但并不常用. 它可以根據特定條件,更新數組元素值,或根據原值擴展一個新的副本元素.

var _mapArrA=$.map(_mozi,function(val){

return val+'[新加]';

});

var _mapArrB=$.map(_mozi,function(val){

return val=='墨子' ? '[只給墨子加]'+val : val;

});

var _mapArrC=$.map(_mozi,function(val){

//為數組元素擴展一個新元素

return [val,(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){

alert('墨子 存在于數組_mozi中,其在數組中索引值是: '+_exist);

}

if(_inexistence<0){

alert('衛鞅 不存在于數組_mozi中!,返回值為: '+_inexistence+'!');

}

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);

參考:

http://www.open-open.com/lib/view/open1372393730385.html

http://www.jb51.net/article/57883.htm

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260029.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260029.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260029.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

android 官方說明文檔,Android官方文檔翻譯-Accessibility

標簽元素向用戶提供解釋每個可互動元素的意義和目的有用且形象的標簽是非常重要的。這些標簽允許屏幕閱讀者(比如 TalkBack )正確向用戶解釋每個控制器的功能。你可以使用一下兩個方法提供元素的標簽&#xff1a;當展示在 Activity 的整個生命周期中都不會改變樣式的靜態元素時…

USACO 2.4.1 The Tamworth Two

牛和農夫按照固定的走法在10x10的地圖中走&#xff0c;每分鐘走一步&#xff0c;求經過幾分鐘相遇。永遠不能相遇輸出0. 純模擬的題。 判斷永遠不能相遇的方法是如果遇到了一個先前的狀態&#xff0c;那么肯定存在循環&#xff0c;必定不能相遇。 程序中把狀態表示為牛和農夫的…

013,spring boot下JedisCluster客戶端的配置,連接Redis集群

2019獨角獸企業重金招聘Python工程師標準>>> 1&#xff0c;pom依賴添加&#xff1a; <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <type>jar</typ…

android控件使用大全,Android常見控件使用詳解

本文實例為大家分享了六種Android常見控件的使用方法&#xff0c;供大家參考&#xff0c;具體內容如下1、TextView 主要用于界面上顯示一段文本信息2、Button 用于和用戶交互的一個按鈕控件//為Button點擊事件注冊一個監聽器public class Click extends Activity{private Butto…

Ubuntu 12.10使用apt安裝Oracle/Sun JDK

Ubuntu 12.10使用apt安裝Oracle/Sun JDK apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java6-installerposted on 2014-09-05 13:30 fastdream 閱讀(...) 評論(...) 編輯 收藏 …

Afterthought 原來是這樣的啊。。。。

$(ProjectDir)Libs\Afterthought\Afterthought.Amender.exe "$(TargetPath)" "$(TargetDir)EntityFramework.Patterns.dll" 我實際上分析代碼好久&#xff0c;也沒整明白它是怎么運行的&#xff0c;看一下官方文檔明白了&#xff0c;原來。。。 Next, add …

查詢

增加文本1. create database test刪除文本2. drop database test3. create table info( code int primary key, name varchar(20) not null)auto_increment 自增長列foreign key(列名) references 主表名(列名) 外鍵關系4. drop table infoCRUD:增加語法1.insert into 表…

android 監聽界面變化,Android之頁面有變化用onWindowFocusChanged來監聽權限是否開啟...

1 問題我們需要在Activity里面監聽網絡變化、熱點是否開啟和關閉、GPS服務是否開啟、位置權限是否開啟等一些列行為。2 思路方法一&#xff1a;如果是需要啟動activity進行權限申請&#xff0c;我們可以用如下組合模式var intent Intent(Settings.ACTION_LOCATION_SOURCE_SETT…

逐步優化求解最大子序列和

求解最大子序列和 tag&#xff1a; 數據結構與算法 最大子序列和問題&#xff1a; 給定序列A1, A2&#xff0c;... AN&#xff0c; 求最大的子序列和。 例如 &#xff1a;   對于序列4, -3, 5, -2, -1, 2, 6, -2&#xff0c; 最大序列和為11&#xff08;4 -3 5 - 2 - 1 2 …

POJ 1228 —— “穩定”凸包

POJ 1228 Grandpas Estate 這是個好題目&#xff0c;同時也是個不和諧的題目&#xff08;不和諧原因是題目出的存在漏洞&#xff0c;數據弱&#xff0c;而且有些條件沒給清楚&#xff0c;為了一個SB錯誤無限WA之后&#xff0c;終于AC&#xff09; 題意就廢了我好長時間&#xf…

pythonflaskmock數據_Flask實現簡單Mock Server

Mock Server充當的角色&#xff1a;Mock server在實際項目中的意義就相當于數據庫。將我想要的數據返回給我就行&#xff0c;我并不關心你怎么邏輯處理的。一般的應用程序請求方式是GET和POST。Flask自帶的request使用:request.url獲取當前的請求url全路徑地址&#xff0c;requ…

在Application_Error事件中獲取當前的Action和Control

ASP.NET MVC程序處理異常時&#xff0c;方法有很多&#xff0c;網上也有列舉了6種&#xff0c;下面是使用全局處理在Global.asax文件的Application_Error事件中實現。既然是ASP.NET MVC,我需要捕捉到Controller和Action名稱。怎樣實現可以參考下面代碼&#xff1a; 程序運行結果…

android 真機 sqlite3,在android真機上使用sqlite3

#zijun#2013.10.29#QQ:223663737在android真機上使用sqlite3前期準備:1:保證手機已經ROOT操作步驟:1 : 打開CMD2 : 進入android linuxadb shell3 :切換到root權限su - root4 : 修改system目錄為可讀寫權限mount -oremount,rw -t yaffs2 /dev/block/mtdblock3 /system5 :拷貝文件…

【ORACLE技術嘉年華PPT】MySQL壓力測試經驗

這是2013.11.18在第三屆ORACLE技術嘉年華上的主題演講PPT。點擊這里&#xff1a;本地下載PPT。--------------------------------------分割線--------------------------------------知數堂 &#xff08;http://zhishuedu.com&#xff09;培訓是由資深MySQL專家葉金榮、吳炳錫…

EditText 空指針問題

今天在Android中碰到了這樣一個問題&#xff0c;其實應該很少人會碰到&#xff0c;因為只有像我這種奇葩才會犯這種錯誤。 但既然解決了&#xff0c;我就想在這里跟大家分享一下&#xff0c;畢竟它困擾了我一個白天啊。。。不多說了&#xff0c;看下面。。。 其實問題很簡單&am…

ios跨線程通知_iOS多線程開發(三)---Run Loop(一)

Run LoopRun Loop就是一個事件處理的循環&#xff0c;用來不停的調動工作以及處理輸入事件。使用Run Loop的目的就是節省CPU效率&#xff0c;線程在有工作的時候忙于工作&#xff0c;而沒工作的時候處于休眠狀態。一&#xff0c;Run Loop剖析Structure of a Run Loop and its s…

android播放flv,Android:從url播放flv視頻流

我目前有一個應用程序&#xff0c;它可以記錄視頻并將其上傳到我的服務器。在上傳視頻之后&#xff0c;應用程序會獲得一個響應&#xff0c;該響應包含指向該文件的flv流的URL。Android&#xff1a;從url播放flv視頻流當我嘗試在android默認視頻播放器(視頻)中打開流時什么也沒…

1.關于瀏覽器

一、認識主流瀏覽器 Chrome谷歌瀏覽器Safari蘋果瀏覽器Firefox火狐瀏覽器Opera歐朋瀏覽器 二、瀏覽器內核是什么&#xff1f; 三、五大瀏覽器&#xff0c;四大內核 四、前端做網頁開發用什么瀏覽器&#xff1f; Chrome谷歌瀏覽器。

About me [my way]

就要除夕了。假日的到來&#xff0c;心情瞬間就閑適了下來。早早上了床&#xff0c;看看電腦還有30%的電&#xff0c;想到一些事情&#xff0c;順帶紀錄一下吧。 今年堅持上班到了除夕的前一天&#xff0c;爸媽來工作的城市陪我過年了。感謝他們。前幾天就已經看帖子有說仍在上…

明天要中秋節了,先來到簡單“類”的題目

2-1 Point類的定義 Time Limit: 1000MS Memory limit: 65536K 題目描述 通過本題目的練習可以掌握類與對象的定義&#xff1b; 設計一個點類Time&#xff0c;它具有私有數據成員x(橫坐標)、y(縱坐標)&#xff1b;公有成員函數&#xff1a;SetPoint(int,int)用于設置點對象的值&…