📜  JavaScript | Float64Array.from() 方法(1)

📅  最后修改于: 2023-12-03 15:01:39.229000             🧑  作者: Mango

JavaScript | Float64Array.from() 方法

Float64Array.from() 方法是 Float64Array 对象上的一个静态方法, 它从一个可迭代的或类数组对象中创建一个新的 Float64Array 对象。

语法
Float64Array.from(source[, mapFn[, thisArg]])

参数说明:

  • source(必须):要转换成数组的可迭代对象或类数组对象。
  • mapFn(可选):数组中每个元素被映射前的回调函数。
  • thisArg(可选):执行回调函数 mapFnthis 对象的值。
返回值

一个新的 Float64Array 数组对象。

示例
从数组中创建 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

下面的代码创建一个空的 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

下面的代码创建一个 Set,然后将其转换为 Float64ArrayArray.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]
从 generator 中创建 Float64Array

下面的代码使用一个生成器函数,生成一组随机的浮点数组成的 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]
参考文献
  • Float64Array.from() - MDN Web Docs
  • Float64Array - MDN Web Docs