1. 程式人生 > >【javascript】JavaScript數組常用方法

【javascript】JavaScript數組常用方法

map return 函數調用 turn 就會 開頭 滿足 函數 沒有

JavaScript數組常用方法

一、數組創建

1.(1)使用Array創建數組:

1 var arr1 = new Array(); //創建一個空數組
2 var arr2 = new Array(10); // 創建一個包含10項的數組
3 var arr3 = new Array("a","b","c"); // 創建一個包含3個字符串的數組

(2)使用數組字面量表示法:

1 var arr4 = []; //創建一個空數組
2 var arr5 = [1]; // 創建一個包含1項的數組
3 var arr6 = ["a","b","c"]; // 創建一個包含3個字符串的數組

2.修改數組元素值

(1)直接對下標對應的元素進行修改:

1 var arr = ["a","b","c"]; // 創建一個包含3個字符串的數組
2 arr[1] = "e"; //修改第二項為e 
3 arr[3] = "f"; //增加第四項為f 

(2)根據數組當前長度進行增刪修改:

1 var arr = ["a","b","c"]; // 創建一個包含3個字符串的數組
2 arr[arr.length] = "d"; //在下標為3處(也就是數組尾部)添加一項"d"
3 arr.length = arr.length-1; //將數組的最後一項刪除

二、常見的數組方法

filter() “過濾”功能,數組中的每一項運行給定函數,返回滿足過濾條件組成的數組。 arr.filter(function(x, index) { return;})
every() 判斷數組中每一項都是否滿足條件,只有所有項都滿足條件,才會返回true。 arr.every(function(x) {})
forEach() 對數組進行遍歷循環,對數組中的每一項運行給定函數。這個方法沒有返回值。參數都是function類型,默認有傳參,參數分別為:遍歷的數組內容;第對應的數組索引,數組本身。 arr.forEach(function(x, index, a){})
indexOf()和 lastIndexOf() 接收兩個參數:要查找的項和(可選的)表示查找起點位置的索引。從數組的開頭(位置 0)或是末尾開始向後查找。 arr.indexOf(5,2)) arr.lastIndexOf(5,4)
concat() 將參數添加到原數組中。這個方法會先創建當前數組一個副本,然後將接收到的參數添加到這個副本的末尾,最後返回新構建的數組。在沒有給 concat()方法傳遞參數的情況下,它只是復制當前數組並返回副本。 var arr = [1,3,5,7]; var arrCopy = arr.concat(9,[11,13]);//[1,3,5,7,9,11,13]
join() 將數組的元素組起一個字符串,以separator為分隔符,省略的話則用默認用逗號為分隔符,該方法只接收一個參數:即分隔符。 arr.join("-");
push()和pop() push():可以接收任意數量的參數,把它們逐個添加到數組末尾,並返回修改後數組的長度。pop():數組末尾移除最後一項,減少數組的 length 值,然後返回移除的項。類似於棧。

arr.push(item);

var item=arr.pop();

shift()和unshift() shift():刪除原數組第一項,並返回刪除元素的值;如果數組為空則返回undefined 。
unshift:將參數添加到原數組開頭,並返回數組的長度 。類似於隊列。

arr.unshift(,)

var item=arr.shift();

sort() 按升序排列數組項——即最小的值位於最前面,最大的值排在最後面(默認的)。在排序時,sort()方法會調用每個數組項的 toString()轉型方法,然後比較得到的字符串,以確定如何排序。即使數組中的每一項都是數值, sort()方法比較的也是字符串。 arr2.sort(function(){});
reverse() reverse():反轉數組項的順序。 arr.reverse();
slice() slice():返回從原數組中指定開始下標到結束下標之間的項組成的新數組。slice()方法可以接受一或兩個參數,即要返回項的起始和結束位置。在只有一個參數的情況下, slice()方法返回從該參數指定位置開始到當前數組末尾的所有項。如果有兩個參數,該方法返回起始和結束位置之間的項——但不包括結束位置的項。 arr.slice(1,4);
splice() splice():實現刪除、插入和替換。

arr.splice(0,2);//刪除第0項與第1項

arr.splice(2,0,4,6);//在第2項的位置插入兩個元素4和6

map()

map():指“映射”,對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。

下面代碼利用map方法實現數組中每個數求平方。

arr.map(function(item){ return;})
some() some():判斷數組中是否存在滿足條件的項,只要有一項滿足條件,就會返回true。 arr.some(function(item){ return;})
reduce()和 reduceRight() 實現叠代數組的所有項,然後構建一個最終返回的值。(前往後 和 後往前)。這兩個方法都接收兩個參數:一個在每一項上調用的函數和(可選的)作為歸並基礎的初始值。傳給 reduce()和 reduceRight()的函數接收 4 個參數:前一個值、當前值、項的索引和數組對象。這個函數返回的任何值都會作為第一個參數自動傳給下一項。 var sum = values.reduceRight(function(prev, cur, index, array){ return prev + cur; },0);//對values數組求和

實例:

1 對數組content=[12,65,92,71,30,6,12,65]進行操作:
2   (1)對數組進行排列,降序;
3   (2)在element=65後添加62,63,64;
4   (3)去重

源碼:

 1 <script>
 2 var content=[12,65,92,71,30,6,12,65];
 3 //降序排列
 4 function compare(value1,value2){
 5     return value2-value1;
 6 }
 7 content.sort(compare);
 8 
 9 //在指定第一個元素65後添加62,63,64
10 var index=content.indexOf(65)
11 if(index>=0){
12     content.splice(index+1,0,62,63,64);
13 }
14 
15 //去重
16 content.sort(compare);
17 function remove(arr){
18     var ret=[arr[0]];
19     for(var i =1;i<arr.length;i++){
20         if(ret[ret.length-1]!=arr[i]){
21             ret.push(arr[i]);
22         }
23     }
24     return ret;
25 }
26 content=remove(content);
27 alert(content);
28 </script>

【javascript】JavaScript數組常用方法