![](/img/trans.png)
[英]ES6 - Create new array from an array based on key name using javascript es6
[英]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數組一樣。
任何人都可以洞悉這是要說什么還是我想念什么?
數組子類繼承自Array
的from
方法,因此您可以例如調用
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.