ES6-之新增優化數組方法

數組優化

新增Array.of()  、 Array.from()

Array.of()總會創建一個包含所有參數的數組,用來解決通過Array構造函數來創建數據的怪異行爲, new Array(n)傳一個參數的時候,如果參數類型爲number,則該數組的length替換爲n,如果是其他類型則會創建一個長度爲1的數組n,而Array.of(n),無論參數是何種類型,都只創建length爲1,值爲n的數組

let a = new Array(9)  //[empty * 9]

let b = Array.of(9)  //[9]

Array.from()能夠將類數組轉化爲數組,可以處理類數組對象和可迭代對象,可接收兩個參數,第一個是類數組,第二個是一個映射函數,還有第三個函數,表示映射函數this的值

function translate(){
  let arr = Array.from(arguments, value => value + 1)
  return arr;
}
translate(1,2,3,4)   // [2, 3, 4, 5]

find()和findeIndex()

與ES5中添加的IndexOf()方法的區別在於,indexOf()查找的是特定的值,而find()查找的是符合某個條件的值,findIndex()查找的是符合條件的值的索引,接收兩個參數,第一個是回調函數,第二個是回調函數中this的值

let arr = [20, 80, 10, 23,78,79]

arr.find(value => value > 70)   // 80
arr.findIndex(value => value > 70)  //1
arr.findIndex(value => value > 80)  //-1

fill()

fill(value, start, end)  用一個固定值替換數組中的元素,接收三個參數,第一個是用於填充的值,第二個參數是開始填充替換的位置,第三個參數是停止填充的位置,填充不包括此項,填充中止位不會大於數組長度

let arr = ['bag','big','beg','pig']

arr.fill('hello',2,3)  // ["bag", "big", "hello", "pig"]

new Array(2).fill('hello',0,10)  //["hello", "hello"]

copyWithin()

copyWithin(target,start,end) ,拷貝數組中指定位置的元素到另一指定位置處,接收三個參數,第一個參數是要被替換的目標索引,第二個參數是數組中被拷貝的起始索引,第三個參數是數組中被拷貝的中止索引,該方法不會改變原始數組的長度

let arr = ['aa','bb','cc','dd','ee']
//將前三個元素替換後第四個即之後的元素
arr.copyWithin(3,0,3)  // ["aa", "bb", "cc", "aa", "bb"]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章