繁体   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