【javascript】JavaScript數組常用方法
阿新 • • 發佈:2017-09-10
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數組常用方法