簡體   English   中英

使用新的ES6 Array.from()方法

[英]Using the new ES6 Array.from() method

我不了解新的Array.from方法的一方面。 我正在閱讀MDN上的“ 描述”部分 ,並發現以下內容:

Array.from()有一個可選參數mapFn ,它允許您在正在創建的數組(或子類對象)的每個元素上執行映射函數。 更清楚地, Array.from(obj, mapFn, thisArg)Array.from(obj).map(mapFn, thisArg) Array.from(obj, mapFn, thisArg)具有相同的結果,除了它不創建中間數組。 這對於某些數組子類(例如類型化數組 )尤其重要,因為中間數組必須將其值截斷以適合相應的類型。

我不理解:

...中間數組必須將值截斷以適合適當的類型

我不確定這是什么意思,因為我們正在從類型化數組轉到普通Array (使用Array.from )。 並不是在typed數組中會有任何不正確的類型。 同樣,從Array.from()得到的Array當然也可以接受任何類型,就像普通的JS數組一樣。

任何人都可以洞悉這是要說什么還是我想念什么?

數組子類繼承自Arrayfrom方法,因此您可以例如調用

const iter = (function*() { for (var i=0; i<512; i++) yield i }());
const arr = Uint8Array.from(iter);
console.log(arr); // Uint8Array(512) […, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, …]

結果數組是一個Uint8Array ,其值分別被截斷。 如果提供了映射功能,則無論使用Uint8Array.from(iter, fn)還是Uint8Array.from(iter).map(fn)都會有所不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM