




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、JavaScript之 數(shù)組(Array)詳解篇一:Javascript數(shù)組及其操作Javascript數(shù)組及其操作1. 如何創(chuàng)建數(shù)組2. 如何對數(shù)組進行操作(添加 ,刪除 ,讀取)3. 數(shù)組常見方法和屬性如何創(chuàng)建一個數(shù)組 ,一般地根據(jù)初始化設(shè)定簡單分為 3 種 :1. 單純創(chuàng)建數(shù)組 :var arr=new Array();要點用new關(guān)鍵字創(chuàng)建數(shù)組對象Array(),Array(對象是一個本地 類,可以用new創(chuàng)建一個對象后使用2. 創(chuàng)建數(shù)組的同時規(guī)定數(shù)組大小 :var arr=new Array(10);這里就創(chuàng)建了一個初始化大小為10的數(shù)組注意 :當使用數(shù)組大小操作初始化大小時 ,數(shù)組
2、會自動被撐大 ,不會 像C語言那樣發(fā)生錯誤動態(tài)增長是js數(shù)組的一個性質(zhì)另外,js中支持最 大數(shù)組長度為 42949672953. 直接初始化 :var arr=new Array(love,hate,pain);/ 這里就直接初始化了數(shù)組 或 var arr=happy,cute,scare;/ 括號也可以聲明一個數(shù)組對象當然,類似C語言可以定義2維3維和多維的數(shù)組,例如:var myArray = new Array();for(var i=0;i myArrayi=new Array();myArrayi0=Math.floor(Math.random()*10);myArrayi1=Ma
3、th.floor(Math.random()*10);myArrayi2=Math.floor(Math.random()*10);myArrayi3=Math.floor(Math.random()*10);myArrayi4=Math.floor(Math.random()*10);myArrayi5=Math.floor(Math.random()*10);myArrayi6=Math.floor(Math.random()*10);myArrayi7=Math.floor(Math.random()*10);myArrayi8=Math.floor(Math.random()*10);
4、myArray.sort( function(x, y) .return(x0=y0)?(x4=y4)?(x8-y8):(x4-y4):(x2-y2);for(var i=0;i document.write(myArrayi.join(,) + );數(shù)組的屬性 :length arr.length 返回數(shù)組 arr 的長度 ,常見于循環(huán)中對數(shù)組的遍歷 ,比如: for(var i=0;i 執(zhí)行部分數(shù)組元素的訪問 : arrindex, 其中 index 表示索引即數(shù)組基數(shù) ,從 0開始,共有arr.length個元素.比如:arrO訪問第一個數(shù)組元素,arr1訪問 第二個數(shù)組元素 依次類推
5、數(shù)組的操作方法 :先概覽下下面的這些操作數(shù)組常用的方法 (13個)toString(),valueOf(),toLocalString(),join(),split(),slice(),concat(), pop(),push(),shift(),unshift(),sort(),splice() 下面逐一分析這些方法的功能和用法 . toString(),valueOf(),toLocalString():功能:返回數(shù)組的全部元素 注:數(shù)組名也可以返回整個數(shù)組 代碼:var m=am,bm,cm;/ 用括號聲明一個數(shù)組對象 alert(m.toString();/toString() 返回數(shù)
6、組對象的所有內(nèi)容 ,用逗號分 割,即 am,bm,cmalert(m.valueOf();/valueOf()也返回數(shù)組對象的所有內(nèi)容 alert(m.toLocaleStri ng();/toLocaleStri ng()也返回數(shù)組對象的所有 內(nèi)容,但有地區(qū)語言區(qū)別 ,暫不研究alert(m);/ 數(shù)組名也返回數(shù)組對象的所有內(nèi)容join():功能:把數(shù)組各個項用某個字符 (串)連接起來 ,但并不修改原來的 數(shù)組代碼:var m=am,bm,cm;/ 用括號聲明一個數(shù)組對象var n=m.join(-);/ 用 -連接 am,bm,cm.alert(m.toString();/m 并沒有被修改
7、 ,返回 am,bm,cmalert(n);/n 是一個字符串 ,為 am-bm-cmsplit():功能 :把一個字符串按某個字符 (串)分割成一個數(shù)組 ,但不修改原 字符串代碼:var str=I love maomao,I am caolvchong;var arr=str.split(o);/ 按字符 o 把 str 字符串分割成一個數(shù)組 alert(arr);/ 輸出整個數(shù)組slice():返回某個位置開始(到某個位置結(jié)束)的數(shù)組部分,不修改原 數(shù)組 代碼 :var m=am,bm,cm,dm,em,fm;var n=m.slice(2);/ 返 回 第 二 個 元 素 bm 后 面
8、 的 元 素 , 即cm,dm,em,fmvar q=m.slice(2,5);返回第二個元素后到第五個元素,即cm,dm,emalert(n);alert(q);數(shù)組對象的棧操作push()數(shù)組末尾添加一個項pop():刪除數(shù)組最后一個項代碼:var m=am,bm,cm,dm,em,fm;m.push(gm);/ 在數(shù)組末尾添加元素 gm alert(m);m.pop();/ 刪除數(shù)組最后一個元素 gmalert(m);數(shù)組對象的隊列操作 :un shift():數(shù)組頭添加一個項shift():刪除數(shù)組第一個項代碼:var m=am,bm,cm,dm,em,fm;m.unshift(gm)
9、;/ 在數(shù)組第一個元素位置添加元素 gm alert(m);m.shift();/ 刪除數(shù)組第一個元素 gmalert(m);sort():數(shù)組按字符的ASCI碼進行排序,修改數(shù)組對象注:即便是數(shù)字數(shù)組 ,也將轉(zhuǎn)化為字符串來進行比較排序代碼:var m=am,fm,gm,bm,em,dm;m.sort();/ 按字母序排序alert(m);concat():在數(shù)組尾添加元素,但不修改數(shù)組對象代碼:var m=am,bmvar n=m.concat(cm);添加一項cm,并且賦予新數(shù)組對象alert(m);/ 原數(shù)組沒有被修改alert(n);輸出新數(shù)組對象splice():在數(shù)組的任意位置進行
10、添加,刪除或者替換元素,直接修改 數(shù)組對象 細節(jié) :splice()有三個參數(shù)或三個以上參數(shù),前兩個是必須的,后面參數(shù)是 可選的進行添加:splice(起始項,0,添加項)進行刪除:splice(起始項要刪除的項個數(shù))進行替換:splice(起始項,替換個數(shù),替換項)這個其實是添加刪除 的共同結(jié)果 代碼:var m=am,bmm.splice(1,0,fm,sm); 在第一項后面添加 fm 和 sm,返回 am,fm,sm,bmalert(m);m.splice(2,1);刪除第二項后面一項(即第三項sm,返回 am,fm,bm)alert(m);m.splice(2,1,mm);/ 替 換
11、第二 項 后 面一項 (即 第 三項,返 回 am,fm,mm)alert(m);JavaScript數(shù)組操作函數(shù)join(delimiter): 把數(shù)組中各個元素使用分隔符 (delimiter) 拼成字符 串concat(array1, array2, .): 合并數(shù)組,對原數(shù)組不影響,只是返回 合并后的新數(shù)組pop(): 刪除并返回最后一個元素push(element1, element2, .): 在數(shù)組末尾追加元素shift(): 刪除并返回第一個元素unshift(element1, element2, .): 在數(shù)組開始位置添加元素 reverse(): 將數(shù)組元素順序首尾反轉(zhuǎn)s
12、ort(function): 給數(shù)組排序如果不給參數(shù),默認按字符排序 (所有元素是數(shù)字也不會按數(shù)字排 序的)參數(shù)必須是一個函數(shù),類似 function(a, b) ,在函數(shù)中判斷 a, b 的大小,ab返回正數(shù),a slice(start, end):返回一個新的數(shù)組,將 start開始,到end結(jié)束(不包括end)之間的元素復(fù)制到新數(shù)組中splice(start, count, replaceElement1, replaceElement2, .): 刪除或者替換數(shù)組元素,從 start 開始,對 count 個元素進行刪除或替換如果提供 replaceElement 參數(shù)則進行替換,否則
13、進行刪除操作, 被替換的元素個數(shù)和 replaceElements 的個數(shù)不必相等返回一個數(shù)組,包含被刪除或替換掉的元素 判斷是否數(shù)組的方法var arrayVar = aaa, bbb, ccc;var nonArrayVar = length:4, otherAttribute:attr ; document.write(arrayVar.constructor=Array);document.write();document.write(nonArrayVar.constructor=Array);結(jié)果是 true, falsegrep、mapPerl語言帶出來的東西,jQuery實現(xiàn)s
14、elector時用了這種方式 grep對數(shù)組的 grep 操作,指類似這樣的代碼 :Array newArray = grep(condition, oldArray,這個操作將對 oldArray 數(shù)組的每個元素進行遍歷,如果當前處理元素符合條件 condition ,則 加入到返回數(shù)組中 jQuery中的grep類似這樣:function( elems, callback), elems是DOM元素集合,callback是實現(xiàn)selector的一些表達式函數(shù),如果callback返回true則表明當前處理的元素符合 selector表達式篇二:javaScript基礎(chǔ)之數(shù)組javaScri
15、pt基礎(chǔ)之數(shù)組目錄創(chuàng)建數(shù)組的方法 3數(shù)組的內(nèi)置方法 3數(shù)組首尾位置的數(shù)據(jù)項添加及刪除方法 3array.push( value,)-向數(shù)組的尾部添加值 4array.unshift( value, ) - 在數(shù)組頭部插入一個元素 4array.pop( ) - 刪除并返回數(shù)組的最后一個元素 5array.shift( )- 將 元 素 移 出 數(shù)組6重排序方法 6array.reverse() - 顛 倒 數(shù) 組 中 元 素 的 順序 7array.sort( fn )對數(shù)組元素進行排序 7數(shù)組的固定位置的增刪改方法 8array.splice(start,deleteCount,value,
16、-插入、刪除或替換數(shù)組的元素 8可以復(fù)制數(shù)組的方法 8array.slice(start,end) - 返 回 數(shù) 組 的 一 部分 9array.c on cat(value ,)- 連 接 數(shù)組 9將 數(shù) 組 轉(zhuǎn) 化 為 字 符 串 的 方法 10array.join(separator) -將數(shù)組元素連接起來以構(gòu)建一個字符串 10array.toString() - 將 數(shù) 組 轉(zhuǎn) 換 成 一 個 字 符串 11array.toLocaleString() - 把 數(shù) 組 轉(zhuǎn) 換 成 局 部 字 符串 11數(shù) 組的屬 性 :length12ECMAScript 5 添 加 的 數(shù) 組 方
17、法 12位置方法 12迭 代 方 法 - 不 修 改 原 數(shù)組 13歸并方法 - 迭代數(shù)組所有項,然后構(gòu)建一個最終返回的值 13數(shù)組是復(fù)合數(shù)據(jù)類型 (對象類型)的數(shù)據(jù),它的數(shù)據(jù)索引為數(shù)字, 從 0 開始,逐一遞增,有個 length 屬性,代表數(shù)組項的總數(shù)。數(shù)組的 每一項可以存任何類型的數(shù)據(jù), 并不是數(shù)組就只可以存 Number 類型的 數(shù)據(jù)哦。當我們用 for in 語句 遍歷數(shù)組的時候, length 屬性并不會被遍歷 出來。創(chuàng)建數(shù)組的方法 var arr = new Array( ); /創(chuàng)建一個空數(shù)組var arr = new Array(size); / size數(shù)組的長度,ex.s
18、ize=3創(chuàng)建一個有3 個元素的數(shù)組 ,元素為 undefinedvar arr = new Array(element0, element1, ., elementn); / 用參數(shù) 指定的值初始化數(shù)組,以逗號分隔var arr = ; / 直接量的方式創(chuàng)建一個空數(shù)組,和第一個創(chuàng)建數(shù)組的方法同效 var arr = element0, element1, ., elementn; / 直接量的方式創(chuàng)建 數(shù)組,同上面第三個創(chuàng)建方式數(shù)組的內(nèi)置方法數(shù)組首尾位置的數(shù)據(jù)項添加及刪除方法array.push()array.pop()array.unshift()array.shift()/ 添加的都返回
19、數(shù)組的 length 屬性值/ 刪除的都返回刪除項的值array.push( value,-向數(shù)組的尾部添加值參數(shù):value可以是 一個或多個(不傳參數(shù)好像也沒報錯)功能:方法push()將把它的參數(shù)順次添加到array的尾部。 返回值:把指定的值添加到數(shù)組后的新長度。是否修改原數(shù)組:是!-它直接修改array而不是創(chuàng)建一個新的 數(shù)組。擴展:方法push()和方法pop()用數(shù)組提供先進后出棧的功能。Bug:在JavaScript的Netscape實現(xiàn)中,如果把語言版本明確地設(shè)置為 1.2,該函數(shù)將返回最后添加的值,而不是返回新數(shù)組的長度。array.unshift( value, - 在數(shù)
20、組) 頭部插入一個元素 參數(shù): value 是要插入到數(shù)組頭部的一個或多個值(不傳參數(shù)好 像也沒報錯)功能:方法unshift()將把它的參數(shù)插入array的頭部,并將已經(jīng)存 在的元素順次地移到較高的下標處,以便留出空間。該方法的第一個 參數(shù)將成為數(shù)組新的元素 0,如果還有第二個參數(shù), 它將成為新的元素 1,以此類推。返回值:把指定的值添加到數(shù)組后的新長度。是否修改原數(shù)組:是! -unshift()直接修改原有的數(shù)組,而不是創(chuàng)建一個新的數(shù)組。 示例:var a = ; / a:a.unshift(1); / a:1 返回 1a.unshift(22); / a:22,1 返回 2a.unshi
21、ft(33,4,5); / a:33,4,5,22,1 返回 4a.push(6); / a:33,4,5,22,1,6 返回 5array.pop( ) - 刪除并返回數(shù)組的最后一個元素 參數(shù):無功能:方法pop()將刪除array的最后一個元素,把數(shù)組長度減1, 如果數(shù)組已經(jīng)為空,則pop()不改變數(shù)組。返回值:返回它刪除的元素的值。數(shù)組已經(jīng)為空的時候, pop() 方法返回 undefined。是否修改原數(shù)組:是!-它直接修改 array。擴展:方法push()和方法pop()用數(shù)組提供先進后出棧的功能。示例:var stack = ; / 棧: stack.push(1, 2); /
22、棧 : 1,2 返回 2stack.pop(); / 棧 : 1 返回 2stack.push(4,5); / 棧 : 1,4,5 返回 2stack.pop() / 棧: 1 返回 4,5篇三:JavaScript數(shù)組定義JavaScript數(shù) 組定義數(shù)組有四種定義的方式 使用構(gòu)造函數(shù): var a = new Array();var b = new Array(8);var c = new Array(first, second, third); 或者數(shù)組直接量:var d = first, second, third;屬性Array 只有一個屬性,就是 length,length 表示的
23、是數(shù)組所占內(nèi)存 空間的數(shù)目,而不僅僅是數(shù)組中元素的個數(shù),在剛才定義的數(shù)組中, b.length 的值為 8var a = new Array(first, second, third)a48 = 12document.write(a.length)/ 顯示的結(jié)果是 49我們var a =數(shù)組的 length 屬性是可寫的,這是一個非常有意思的屬性,可以通過這種方法來截取數(shù)組var a = new Array(first, second, third)delete a1document.write(a.length)/ 顯示的結(jié)果是 3,說明即使刪除也無法改變數(shù)組的長度 new Array(fi
24、rst, second, third)a.length = 1document.write(a.length)/ 顯示的結(jié)果是 1,說明只剩下一個元素了方法這里并沒有包括IE和FF并不兼容的一些方法:toString():把數(shù)組轉(zhuǎn)換成一個字符串toLocaleString():把數(shù)組轉(zhuǎn)換成一個字符串join():把數(shù)組轉(zhuǎn)換成一個用符號連接的字符串shift():將數(shù)組頭部的一個元素移出un shift():在數(shù)組的頭部插入一個元素pop():從數(shù)組尾部刪除一個元素push():把一個元素添加到數(shù)組的尾部con cat():給數(shù)組添加元素slice():返回數(shù)組的部分reverse將數(shù)組反向排序
25、sort():對數(shù)組進行排序操作splice():插入、刪除或者替換一個數(shù)組元素toString()方法,toLocaleString()方法的作用類似,F(xiàn)F下的作用是 完全相同的, IE 的話如果元素是字符串,會在 “后,”面加上一個空格, 如果元素是數(shù)字,會擴展到兩位小數(shù),兩者都會改變字符串的 length 屬性,所以考慮到兼容性,盡量不要使用toLocaleStri ng(方法。var a = new Array(1, 2, 3, 4, 5, 6, 7)var b = a.toStri ng() b 為字符串形式的 1,2, 3, 4, 5, 6, 7var c = new Array(
26、1, 2, 3, 4, 5, 6, 7)var d = c.toLocaleString() /d 為字符串形式的 1, 2, 3, 4, 5, 6, 7/toString()方法和toLocaleString()方法都可以拆解多維數(shù)組join()方法將數(shù)組中的所有元素轉(zhuǎn)換成字符串, 然后連接起來,這 剛好和String的split()方法是一個相反的操作。join()默認是使用“作為 分隔符,當然你也可以在方法中指定分隔符var a = new Array(first, second, third)var s = a.join(.)document.write(s)/ 顯示的結(jié)果是 “ fi
27、rst.second.third”pop()方法可以從數(shù)組尾部刪除若干個元素,push()方法把一個元 素添加到數(shù)組的尾部,這兩個方法剛好是兩個相反的操作。兩個都是 對原來的數(shù)組進行操作,但是要注意push()方法返回的是新的數(shù)組的長 度,而pop()方法則返回被刪去的那個元素。var a = new Array(1, 2, 3)var b = a.push(4,5,6,7) a 為1,2, 3, 4, 5, 6, 7b 為 6 注意 push()方法不會幫你打開一個數(shù)組var c = new Array(1, 2, 3, 4, first)var d = c.pop() c為1,2, 3,
28、4d 為字符串形式的firstshift()方法可以從數(shù)組頭部刪除一個元素,un shift()方法把若干元 素添加到數(shù)組的頭部,這兩個方法剛好是兩個相反的操作。兩個都是 對原來的數(shù)組進行操作,但是要注意unshift()方法返回的是新的數(shù)組的長度,而shift()方法則返回被刪去的那個元素var a = new Array(1, 2, 3)var b = a.unshift(4,5,6,7) /a 為4, 5, 6, 7, 1, 2, 3b 為 6 注意 un shift()方法不會幫你打開一個數(shù)組,還有就是被插入數(shù)值的順序var c = new Array(first, 1, 2, 3,
29、4)var d = c.shift() c 為1,2, 3, 4d 為字符串形式的firstcon cat()方法可以返回一個在原有數(shù)組上增添了元素的數(shù)組,元素用“分, ”隔,元素中如果有數(shù)組,將被展開并繼續(xù)添加,但不支持多維數(shù)組形式的展開添加var a = new Array(first, second, third)s = a.concat(fourth,fifth, sixth,seventh, eighth, ninth)document.write(s7)/顯示的結(jié)果是“ eighth, ninth,說明“ eighth, ninth是以數(shù)組的形 式被添加了進去,此是 s的值為fir
30、st, second, third, fourth, fifth, sixth, seventh, eighth, ninthslice()方法返回數(shù)組的一個片斷,或者說是子數(shù)組。slice()的參數(shù)表示字數(shù)組的始末位置,如果只有一個參數(shù),就表示從該處開始一直取到最后,如果參數(shù)出現(xiàn)負數(shù),則表示倒數(shù)的某個位置var a =new Array(1, 2, 3, 4, 5)var b =a.slice(3)/b 為4, 5var c =a.slice(-3) c 為3, 4, 5var d =a.slice(1,-1) /d 為2, 3, 4var e =a.slice(-3,-1) /e 為3, 4reverse(方法將數(shù)組反向排序,他并不創(chuàng)建和返回一個新的數(shù)組,而是在原有的數(shù)組上進行操作var a = new Array(first, second, third)a.reverse() document.write(a)/顯示的結(jié)果是“ third,secondfirst,這時候數(shù)組的順序已經(jīng)顛倒 了sort()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年采購師(高級)考試試卷:采購與成本控制
- 2025年商務(wù)英語(BEC)中級考試真題卷:商務(wù)英語聽力與細節(jié)捕捉技巧試題
- 2025茶藝師職業(yè)技能鑒定理論試卷(高級)備考攻略
- 電力行業(yè)安全績效工作證明(6篇)
- 2025年中國前列腺炎診斷治療試題
- 想象未來的生活未來的學校作文(6篇)
- 基于2025年新型材料3D打印橋梁技術(shù)成果鑒定報告
- 資源型城市綠色產(chǎn)業(yè)園區(qū)產(chǎn)業(yè)集聚與區(qū)域競爭力研究報告
- 2025年食品添加劑在食品添加劑行業(yè)客戶關(guān)系管理中的安全性評估報告
- 無人機物流配送在物流行業(yè)競爭格局中的應(yīng)用優(yōu)勢報告
- 中國聯(lián)通5G毫米波技術(shù)白皮書
- 醫(yī)療人文關(guān)懷
- 系統(tǒng)規(guī)劃與管理師-輔助記憶口訣
- 預(yù)防接種異常反應(yīng)監(jiān)測與處理
- 輸液發(fā)熱反應(yīng)的護理流程圖
- 2023-2024學年四川省阿壩州小學語文四年級期末深度自測試卷詳細參考答案解析
- 8D報告樣板(設(shè)備故障的8D報告)
- 物業(yè)交接表格全模板
- (完整word版)省級溫室氣體清單編制指南
- 2023年《不動產(chǎn)登記法律制度政策》考點速記速練300題(詳細解析)
- 當代世界政治經(jīng)濟與國際關(guān)系 鄧澤宏課件第一章國際政治與世界格局
評論
0/150
提交評論