理解 ES6 --- 數組新方法

英文電子書點此閱讀《understanding es6》

目錄

array in javascript (類)

Array.of(), Array.from()

  • Array.of() 用傳入的參數轉化爲數組,類似於直接的 literal syntax
function createArray(arrayCreator, value){
    return arrayCreator(value)
}

let items = createArray(Array.of, value)
  • Array.from 把 array-like 的數組變成真的array。
  • .of 和 .from 都用 this 來決定返回哪種 array 而不是 Symbol.species。

find() and findIndex()

arr.find(  (item,index,arr) => {

    return item >10 // 某個條件,滿足時即打斷返回
}, thisObj)

let numbers = [25, 30, 35, 40, 45];

console.log(numbers.find(n => n > 33));         // 35
console.log(numbers.findIndex(n => n > 33));    // 2

fill() , copyWithin()

  • 用特定的值來填充/替換數組的元素
arr.fill(valuetofill, startindex, endindex)

// 會替換 arr 的 startindex,startindex之後到endindex之前的元素,如果沒有endindex則會fill startindex及之後所有的元素
// 如果傳入負數 會自動變爲 arr.length + negative number

let numbers = [1, 2, 3, 4];

// paste values into array starting at index 2
// copy values from array starting at index 0
// stop copying values when you hit index 1, optional
numbers.copyWithin(2, 0, 1); 

console.log(numbers.toString());    // 1,2,1,4

typed arrays

  • 由於 js 中的數字是以 64位的浮點村塾的,只是在需要時轉爲32位的證書。因此引用 typed array 來處理這一困境。ES6中的 typed array 可以被當做 WebGL 版本的進化。

  • ArrayBuffer 開闢一個新內存空間但沒有特殊指定用途

let buffer = new ArrayBuffer(10)  // allocate 10 bytes

let buffer2 = buffer.slice(4,6)

console.log(buffer2.byteLength)

let view = new DataView(buffer)
  • 可以改變 buffer 的存儲數據,但不能改變 array buffer 本身的大小。
  • 用 view 來操作 array buffer,以上述 數字類型 來 讀寫數據。
  • 這些基本都是內部操作。不多講了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章