js操作數組方法

arr.shift()

  • 刪除原數組第一項,並返回刪除元素的值
  • 如果數組爲空則返回undefined

arr.unshift(n1,n2,...)

  • 將參數添加到原數組開頭,並返回數組的長度
  • 注:IE6.0及以下返回值總爲undefined

arr.pop()

  • 刪除原數組最後一項,並返回刪除元素的值
  • 如果數組爲空則返回undefined

arr.push()

  • 將參數添加到原數組末尾,並返回數組的長度

arr.concat([...])

  • 返回一個新數組,新數組是由原數組的副本和參數鏈接而成的,故原數組不變

arr.splice(start,deleteCount,val1,val2,...)

  • 從start位置開始刪除deleteCount項,並從該位置起插入val1,val2,...

arr.reverse()

  • 將數組反序

arr.sort(sortby)

按指定的參數對數組進行排序

1)默認排序順序是根據字符串Unicode大小

2)參數sortby可選,規定排序順序,必須是函數

3)如果想按照自定義標準進行排序,就需要提供比較函數,該函數要比較兩個值,然後返回一個用於說明這兩個值的相對順序的數字。比較函數應該具有兩個參數 a 和 b,其返回值如下:

若 a 小於 b,在排序後的數組中 a 應該出現在 b 之前,則返回一個小於 0 的值。

 若 a 等於 b,則返回 0。     若 a 大於 b,則返回一個大於 0 的值。   

 如:按照數字大小進行排序,需要加入的參數函數爲:         

    function sortNumber (a,b) {       

              return a - b       

      }

arr.slice(start,end)

  • 返回從原數組中指定開始下標到結束下標之間的項組成的新數組(不包含結束那一項)

arr.join(separator)

  • 將數組的元素組起一個字符串,以separator爲分隔符
  • 省略的話則用默認用逗號爲分隔符

arr.indexOf(a)

  • 返回a元素索引,不存在返回-1
  • 索引從0開始

arr.reduce(callback,[initialValue])

callback (執行數組中每個值的函數,包含四個參數)

previousValue (上一次調用回調返回的值,或者是提供的初始值(initialValue))

currentValue (數組中當前被處理的元素)

index (當前元素在數組中的索引)

array (調用 reduce 的數組)

initialValue (作爲第一次調用 callback 的第一個參數。)

方法接收一個函數作爲累加器(accumulator),數組中的每個值(從左到右)開始縮減,最終爲一個值。reduce 爲數組中的每一個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素

可以利用此函數對數組所有元素進行求和

sum = arr.reduce((a,b)=>a+b,0); // a爲上次計算返回的值,b爲當前累加的數組的元素,0表示初始累加值爲0

ES6新增

arr = Array.from({...})

  • 將對象轉爲真正的數組,這個對象有兩種類型:類似數組的對象和可遍歷的對象(如ES6中的Set和Map)

arr = Array.of() 

用於將一組值,轉換爲數組
例:Array.of(3,11,8)  // [3,11,8]
彌補數組構造函數Array()的不足
	new Array(3)  // [undefined*3]
Array.of可以替代Array()或者new Array()
	Array.of()  // []
	Array.of(undefined)  // [undefined]
	Array.of(1)  // [1]
	Array.of(1,2)  // [1,2]	

arr.copyWidthin(target, start = 0, end = this.length)

將特定位置的成員複製到其他位置,然後返回當前數組

target(必選):從該位置開始替換數據

start(可選):從該位置開始讀取數據,默認爲0,如果是負數,表示倒數。

end(可選):到該位置前停止讀取數據,默認等於數組長度。如果是負數,表示倒數。

arr.find()

  • 用於找到第一個符合條件的數組成員

arr.findIndex()

  • 返回第一個符合條件的數組成員位置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章