關於JavaScript中的數組作出了以下總結:
一、數組是用來存儲一組不一樣類型的數據的容器。可使用構造函數的方法和字面量的方法來聲明函數;訪問數組經過下標的方法來訪問;arr.length能夠得到數組長度。
二、數組棧方法包括:javascript
unshift():在數組頭部插入值,返回值爲數組長度 push():在數組末尾插入值,返回值爲數組長度 shift():刪除數組中第一個值,返回值爲被刪除的值 pop():刪除數組中最後一個值,返回值爲被刪除的值
三、數組轉字符串:html
join("轉換成字符的鏈接符,默認爲逗號分開")
四、數組排序:java
reverse()數值反序(例以下:var arr=[1,2,3]; document.write(arr.reverse());輸出值爲:3,2,1) sort()元素比較大小(比大小分兩種狀況,例1以下: var arr=[5,2,3]; var arrs=arr.sort(); document.write(arrs);輸出值爲2,3,5; 例2以下: var arr=[1,21,3,0]; document.write(arr.sort());輸出值爲0,1,21,3; 例2的比較大小是按第一個元素來比較的,正確升序應該爲0,1,3,21,代碼以下: var arr=[1,21,3,0]; document.write(arr.sort(function (x,y){ return x-y; })); 輸入出值爲:0,1,3,21; 降序爲: var arr=[1,21,3,0]; document.write(arr.sort(function (x,y){ return y-x; })); 輸出值爲21,3,1,0; ) 因此sort在對數組進行排序後,返回新數組,sort裏能夠接收一個匿名函數來對數組進行升序與降序
五、splice:具備刪除、替換、插入功能面試
例以下: var arr=[1,2,3,5]; //splice替換值,替換3 var insertArr=arr.splice(2,1,"我是替換值");//返回被刪除的值 document.write(arr+"<br />");//輸入結果爲[1,2,我是替換值,5] //splice插入值,在3的後面插入值 var replaceArr=arr.splice(3,0,"我是插入值"); document.write(arr+"<br />");//[1,2,3,我是插入值,5 ] //splice刪除值 var delArr=arr.splice(2); //返回被刪除的值 document.write(arr+"<br />"); //[1,2]
六、arr.indexOf(必寫的要查找的項,可選查找的起點的位置索引) 從數組的頭部開始檢測
arr.lastIndexOf(必寫的要查找的項,可選查找的起點的位置索引) 從數組的尾部開始檢測
例:數組
var arr=[1,2,3,5,2,1,3]; //數組頭部開始檢測元素2的位置 var firstArr=arr.indexOf(2) console.log("數組中從前日後數第一個元素2的下標爲"+firstArr); //輸出值爲1 //數組尾部開始檢測元素1的位置 var lastArr=arr.lastIndexOf(1); console.log("數組中從後向前數第一個元素1的下標爲"+lastArr); //輸出值爲5
七、常見的數組面試題以下:
1)數組去重函數
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> var arr=[1,2,3,1],//原數組 newArr=[], //新數組 flag; for(var i=0;i<arr.length;i++){//循環原數組 flag=true; for(var j=0;j<newArr.length;j++){ //循環新數組 if(newArr[j]==arr[i]){ //若是兩個數組中有相同的數,flag爲假 flag=false; } }; if(flag){ //若是flag爲真 newArr.push(arr[i]);//將arr[i]插入到新數組中 } } document.write(newArr) </script> </body> </html> 2)數組求和 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> //1.計算給定數組 arr 中全部元素的總和 var arr=[1,2,3]; function arryAnd(){ var sum=0;//和的初始值 for(var i=0;i<arr.length;i++){ sum+=arr[i];//sum=sum+0+arr[i]依次類推 } console.log(sum); } arryAnd(); </script> </body> </html> 3)合併數組 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> //合併數組 arr1 和數組 arr2。不要直接修改數組 arr,結果返回新的數組 var arr1=[1,2,3], arr2=[4,5,6], arr; function merge(){ return arr1.concat(arr2) } console.log(merge()); console.log(arr) </script> </body> </html>
4)將數組中某個數刪除,以0爲例code
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> var arr=[0,2,3,0,5,0],//舊數組 newArr=[]; for(var i=0;i<arr.length;i++){ //循環新數組 if(arr[i]==0) continue; newArr.push(arr[i]); } console.log(newArr); </script> </body> </html> 5)switch星期的獲取 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script type="text/javascript"> //獲取星期的方法 var week=new Date().getDay(); console.log(week);//返回number,0-6 switch(week){ case 0: document.write("星期日"); break; case 1: document.write("星期一"); break; case 2: document.write("星期二"); break; case 3: document.write("星期三"); break; case 4: document.write("星期四"); break; case 5: document.write("星期五"); break; case 6: document.write("星期六"); break; //或最後一天以下所示: // default: // document.write("星期六"); } </script> </body> </html>