首頁 >web前端 >js教程 >javascript數組常用的API總結

javascript數組常用的API總結

不言
不言原創
2018-07-20 11:46:161555瀏覽

這篇文章要跟大家介紹的內容是關於javascript陣列中常用的API總結,有著一定的參考價值,有需要的朋友可以參考一下。

陣列常用api 介紹

split():分割字串變成陣列(對字串運算)
join() :合併數組變成字串(對數組操作)
concat():連接兩個數組
splice(begin,deleteCount,insert):拼接
splic(begin,end):截取[begin,end)
sort(callball(value1,value2)):排序
resever():反序
filter(callback(currentValue,index)):篩選
map(callback(currentValue,index)):遍歷,有回傳值,和forEach類似
forEach(callback(currentValue,index)):遍歷,沒有傳回值
#reduce(callback(array ,currentValue,index)[,array]):累計處理
arguments:在函數內部使用,將函數的參數變成偽數組(不能用數組的api)

範例

sort排序:如果value1 <value2回傳-1,升序排列;回傳1,降序排列

var arr = [1,5,4,3,2,6,7]
arr.sort((value1,value2) => {
    if(value1 < value2){
        return -1    //升序
    }else if(value1 > value2){
        return 1    //降序
    }else{
        return 0
    }
})<h3>
<code>filter</code>篩選數組,接受一個回呼函數,回呼函數的參數<code>value</code>、<code>index</code>(可選)、 <code>array</code>(可選)</h3>
<pre class="brush:php;toolbar:false">let arr = [1,2,3,4,5,6,7,8,9]
arr.filter((value,index) =>{
  console.log(index)
  return value > 5    //筛选条件
})
let fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
function find(element){
    return fruits.filter((e)=>{
        return e.indexOf(element) >= -1    //indexOf查到元素,找到返回元素的索引
    })
}
find('ap') //['apple','grapes']

mapforEach之間的差異是:map有回傳值, forEach沒有回傳值;要forEach能回傳值出來,在它內部定義一個變數儲存遍歷的值就可以了。

var a = [1,2,3,4]
a.map(e => e*2)    //[1,4,6,8]
a.forEach(e => e*2)    //undefined, return 也不会出来

reduce接受兩個參數,回呼函數和回呼函數的第一個參數(可選);回呼函數接受四個參數:1、回呼函數的回傳值(處理結果)或reduce的第二個參數;2、正在處理的元素;3、正在處理元素的索引;4、呼叫reduce的陣列。

如果reduce接收第二個參數,那麼回呼函數的第一個參數就是它(如去重,運行邏輯是把待處理數組的每一項處理後在一個個push進去,是加的過程);如果沒有第二個參數,那麼回呼函數的第一個參數就是待處理數組的第一項(如摧毀數組,運行邏輯就是把待處理數組直接拿過來集中處理,是減的過程)。

//去重:把待处理数组的每一项处理后在一个个`push`进去,是加的过程
var a = [1,2,3,2,4,5,3,1]
a.sort().reduce((arr,currentValue) => {
  if(arr.length === 0 || arr[arr.length-1] !== currentValue){
    arr.push(currentValue)
  }
  return arr
},[])    //[1,2,3,4,5]

//摧毁数组:把待处理数组直接拿过来集中处理,是减的过程
function destroyer(arr) {
    return [].slice.call(arguments).reduce((current,next) =>{
        return current.filter((e) => {
            return e !== next
        })
    })
}
destroyer([1, 2, 3, 1, 2, 3], 2, 3);    //[1,1]

arguments雖然不是數組,但可以將它轉換成真正的數組,下面是兩種方法

function array(arr){
    console.log(arr)    //[1,2,3,4,5],注意是一个伪数组,不能用数组的方法
}
array(1,2,3,4,5)

var args = Array.prototype.slice.call(arguments);
var args = [].slice.call(arguments);

相關推薦:

#js中字串的全排列的演算法解析

以上是javascript數組常用的API總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn