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

Scala.js中如何将ArrayBuffer转换为Array[Byte]?

ArrayBuffer 转 Scala Array[Byte](Scala.js)

在Scala.js中,要把DOM API返回的ArrayBuffer转换为Scala的Array[Byte],可以通过TypedArray接口实现,以下是两种常用方案:

方案一:处理无符号字节数据

如果你的ArrayBuffer存储的是0-255范围的无符号字节,用Uint8Array读取后转成Scala有符号Byte:

import scala.scalajs.js.typedarray.{ArrayBuffer, Uint8Array}

def toScalaArray(input: ArrayBuffer): Array[Byte] = {
  val uint8Buffer = new Uint8Array(input)
  uint8Buffer.toArray.map(_.toByte)
}

方案二:直接读取有符号字节数据

如果原始数据本身是-128到127范围的有符号字节,直接用Int8Array读取即可:

import scala.scalajs.js.typedarray.{ArrayBuffer, Int8Array}

def toScalaArray(input: ArrayBuffer): Array[Byte] = {
  val int8Buffer = new Int8Array(input)
  int8Buffer.toArray
}

关键说明

  • JS的TypedArray(Uint8Array/Int8Array)是访问ArrayBuffer底层字节数据的标准接口,Scala.js对其做了原生封装支持。
  • toArray方法会将JS TypedArray转换为Scala原生数组,配合类型转换即可得到目标Array[Byte]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:43:11