javascript中Array類型經常使用方法

方法總覽:

  • instanceOf
  • Array.isArray()
  • toString()
  • join()
  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • concat()
  • slice()
  • indexOf
  • lastIndexOf
  • reverse()
  • sort()
  • forEach()
  • filter()
  • map()
  • every()
  • some()
  • reduce()
  • reduceRight()

1、檢測方法

  1. instanceof
  2. Array.isArray()   (ES5 新增)
    var arr = [1,2,3,4,5,6]; arr instanceof Array; // true Array.isArray(arr); // true

     

2、轉換爲字符串的方法

    轉換方法不改變原數組,只返回轉換後的字符串javascript

  1. toString()
    var arr1 = [1,2,3,4,6]; var arr2 = ['a','b','c','d']; arr1.toString(); // '1,2,3,4,5,6' arr2.toString(); // 'a,b,c,d'
  2. join()
    /* * join方法只接受一個參數,即用做分隔符的字符串, * 而後返回包含全部數組項的字符串 */ var arr = [1,2,3,4,5]; arr.join(''); // '12345' arr.join('-'); // '1-2-3-4-5'

     

3、操做方法

    1. 會改變原數組的操做方法php

  •  push()
    /* * arr.push(arg1,arg2,arg3...) * push方法接收任意數量的參數,並逐個添加到目標數組末尾, * 返回值爲目標數組修改後的長度 */ var arr = [1,2,3]; alert(arr.push(4,5)); // 5 alert(arr); // [1,2,3,4,5]
  • pop()
    /* * arr.pop() * pop方法爲從目標數組末尾移除一項,並返回該移除項 */ var arr = [1,2,3,4,5]; alert(arr.pop()); // 5 alert(arr); // [1,2,3,4]
  • shift()
    /* * arr.shift() * shift方法爲從目標數組開頭移除一項,並返回該移除項 */ var arr = [1,2,3,4,5]; alert(arr.shift()); // 1 alert(arr); // [2,3,4,5]
  • unshift
    /* * arr.unshift(arg1,arg2,arg3...) * unshift方法接收任意數量的參數,並逐個添加到目標數組開頭, * 返回值爲目標數組修改後的長度 */ var arr4 = [1,2,3]; alert(arr4.unshift(4,5)); // 5 alert(arr4); // [4,5,1,2,3]
  • splice()
    /* * Array.splice(index,howmany,arg1,arg2...); * splice主要用途爲向數組中插入項,方法主要爲兩種: * 刪除: splice(要刪除的第一項的位置,要刪除的項數) * 插入或替換: splice(起始位置,要刪除的項數,要插入的項數) * * 返回值爲一個包含刪除項的數組 */ // 刪除 var arr1 = ['one','two','three']; var remove = arr1.splice(1,1); alert(remove); // ['two'] alert(arr1); // ['one','three'] // 插入 var arr2 = ['one','two','three']; var remove = arr2.splice(1,2,'four','five'); alert(remove); // ['two','three'] alert(arr2); // ['one','four','five'] // 替換 var arr3 = ['one','two','three']; var remove = arr3.splice(1,1,'four'); alert(remove); // ['two'] alert(arr3); // ['one','four','three']

    2. 不會改變原數組的方法java

  •  concat()
    /* * Array.concat(arg1,arg2,arg3...) * concat方法爲先建立當前數組一個副本,而後將接收的參數添加到副本末尾, * 最後返回該新數組 */ var arr = [1,2,3]; var a = ['one','two']; var b = 'three'; var c = { name: 'four'}; var newArr = arr.concat(a,b,c); alert(newArr); // [1,2,3,'one','three',{name:'four'}]
  • slice()
    /* * Array.slice(start,end) * slice方法爲截取數組,返回截取項組成的新數組 * slice 爲一個參數時,截取該參數指定的開始項到數組的末尾 * slice 爲兩個參數時,截取參數指定的起始和結束項,但不包括結束項(包左不包右) */ var arr = [1,2,3,4,5,6,7,8,9]; var sliceArr1 = arr.slice(3); // [4,5,6,7,8,9] var sliceArr2 = arr.slice(3,5); // [4,5] var sliceArr3 = arr.slice(3,-1); // [4,5,6,7,8] var sliceArr4 = arr.slice(-3,-1); // [7,8] var sliceArr5 = arr.slice(-1,-3); // []
  • indexOf() 與 lastIndexOf()
    /* * indexOf(value,start),lastIndexOf(value,start) * 兩方法都爲數組查找方法,查找目標項成功則返回數組該值的索引, * 查找失敗則返回-1 * 第一個參數爲要查找的目標值,第二個參數查找的起始位置 * indexOf 爲正序查找 * lastIndexOf 爲逆序查找 */ var arr = ['one','two','two','three','four','four','five']; var index1 = arr.indexOf('two'); // 1 var index2 = arr.indexOf('two',2); // 2 var index3 = arr.lastIndexOf('four'); // 5 var index4 = arr.lastIndexOf('four',4); // 4

4、排序方法

     排序方法會改變原數組swift

  1.   reverse()
    /* * Array.reverse() * 翻轉數組項的順序 * */ var arr = [1,2,3,4,5]; arr.reverse(); alert(arr); // [5,4,3,2,1]
  2. sort()
    /* * Array.sort(callback) * sort爲數組的排序方法,默認按數組每一項進行toString()後的結果進行 * 升序排序 * sort接收一個回調函數爲參數,回調函數有兩個參數,表明數組的前一項和 * 後一項,若是第一個參數應該位於第二個以前則返回一個負數,若是兩個參數相等 * 則返回 0,若是第一個參數應該位於第二個以後則返回一個正數 */ var arr1 = [2,1,4,3,5]; var arr2 = [1,50,10,500,100,1000]; arr1.sort(); arr2.sort(); alert(arr1); // [1,2,3,4,5] alert(arr2); // [1,10,100,1000,50,500] arr2.sort(function(pre,next) { if(pre < next) { return -1; }else if(pre === next) { return 0; }else { return 1; } }); alert(arr2); // [1,10,50,100,500,1000]

5、迭代方法(ES5)

        數組的迭代方法都接收一個回調函數,這個回調函數會在數組的每一項上運行,回調函數接收三個參數:數組項的值,數組項的索引,數組對象自己。數組

  1. forEach():對數組中的每一項運行給定函數。沒有返回值。
    var arr = ['one','two','three']; arr.forEach(function(item,index,thisArr) { // 迭代的item 爲arr 每一項的值 // 迭代的index 爲arr 每一項的索引 // thisArr 爲 數組arr });
  2. filter():對數組的每一項運行給定函數, 返回該函數會返回 true 的項組成的數組。
    var arr = [1,2,3,4,5,6,7]; var filterArr = arr.filter(function(item,index,thisArr) { return item > 4; }); alert(filterArr); // [5,6,7]
  3. map(): 對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。
    var arr = [1,2,3,4,5,6,7]; var mapArr = arr.map(function(item,index,thisArr) { return item + 10; }); alert(mapArr); // [11,12,13,14,15,16,17]
  4. every(): 對數組中的每一項運行給定函數,若是該函數對每一項都返回 true,則返回 true。
    var arr = [1,2,3,4,5,6,7]; var every1 = arr.every(function(item,index,thisArr) { // 對數組每一項與4進行比較 return item > 4; }); alert(every1); // false var every2 = arr.every(function(item,index,thisArr) { // 對數組每一項與8進行比較 return item < 8; }); alert(every2); // true
  5. some(): 對數組中的每一項運行給定函數,若是該函數對任一項返回 true,則返回 true。
    var arr = [1,2,3,4,5,6,7]; var some = arr.some(function(item,index,thisArr) { // 對數組每一項與4進行比較,只要有一項大於4,就返回true return item > 4; }); alert(some); // true
  6. reduce(),reduceRight(): 迭代數組的全部項,而後構建一個最終返回的值, 傳給 reduce()和 reduceRight()的函數接收 4 個參數:前一個值、當前值、項的索引和數組對象。這個函數返回的任何值都會做爲第一個參數自動傳給下一項。
    var arr = [1,2,3,4,5]; // 使用reduce進行數組求和操做 var sum = arr.reduce(function(pre,current,index,thisArr) { return pre + current; }); // reduceRight 則從相反方向,即從右向左迭代,結果一致 alert(sum); // 15
相關文章
相關標籤/搜索