![](/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.