You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何将包含Float32Array的数组扁平化?

问题原因

Array.prototype.flat() 仅会展开普通JS数组类型的嵌套元素,而Float32Array属于TypedArray类,不属于原生Array的实例,因此不会被flat()识别为需要展开的嵌套结构。

解决方案

1. 输出为普通JS数组(推荐)

直接用flatMap方法,对每个Float32Array做一次类型转换后自动合并:

const result = arr.flatMap(item => [...item])
// 或者用Array.from写法
const result = arr.flatMap(item => Array.from(item))

执行后直接得到你需要的一维普通数组:[0.3, 0.7, 0.1, 0.2, 0.544, 0.21]

2. 输出为Float32Array类型(性能更优)

如果不需要转普通数组,想要保留TypedArray的特性同时减少内存开销,可以用批量拷贝的方案:

const totalLength = arr.reduce((sum, item) => sum + item.length, 0)
const result = new Float32Array(totalLength)
let offset = 0
for (const subArr of arr) {
  result.set(subArr, offset)
  offset += subArr.length
}
// 如果后续需要转普通数组,用[...result]即可

内容的提问来源于stack exchange,提问作者little_monkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:48:00