📅  最后修改于: 2023-12-03 15:01:39.229000             🧑  作者: Mango
Float64Array.from()
方法是 Float64Array
对象上的一个静态方法, 它从一个可迭代的或类数组对象中创建一个新的 Float64Array
对象。
Float64Array.from(source[, mapFn[, thisArg]])
参数说明:
source
(必须):要转换成数组的可迭代对象或类数组对象。mapFn
(可选):数组中每个元素被映射前的回调函数。thisArg
(可选):执行回调函数 mapFn
时 this
对象的值。一个新的 Float64Array
数组对象。
下面的代码创建一个 Float64Array
集合,将其从数组中创建。
const arr = [0, 1, 2, 3, 4, 5];
const floatArr = Float64Array.from(arr);
console.log(floatArr);
// Float64Array(6) [0, 1, 2, 3, 4, 5]
下面的代码创建一个空的 ArrayBuffer
,使用 Float64Array
填充其中的8字节块。然后,将其转换为 Base64
编码,以便文本传输。
const buf = new ArrayBuffer(8);
const floatArr = new Float64Array(buf);
for (let i = 0; i < floatArr.length; i++) {
floatArr[i] = i * 2;
}
const str = btoa(String.fromCharCode.apply(null, new Uint8Array(buf)));
console.log(str); // "AAAAAECAMgAA"
下面的代码创建一个 Set
,然后将其转换为 Float64Array
。 Array.from()
方法也能完成这个任务。但是,它不支持 TypedArrays。
const set = new Set(['foo', 'bar', 'baz']);
const floatArr = Float64Array.from(set, (s) => s.length);
console.log(floatArr);
// Float64Array(3) [3, 3, 3]
下面的代码使用一个生成器函数,生成一组随机的浮点数组成的 Float64Array
。
function* createGenerator(size) {
const f64array = new Float64Array(size);
for(let i = 0; i < size; i++) {
yield Math.random() * (i + 1);
}
}
const generator = createGenerator(5);
const floatArr = Float64Array.from(generator);
console.log(floatArr);
// Float64Array(5) [0.4845977310296894, 0.06246544876453996, 1.0048621506846383, 1.060122676174023, 3.0216588735693245]