JavaScript:如何分离 U8IntArray?

标签 javascript jquery arrays

我有一个 20 字节的 U8IntArray,我想将它分成两部分(前 8 个字节和第 9 到 20 个字节):

var arr = new Uint8Array( 20 );
var part1 = arr.slice( 0, 8 );
var part2 = arr.slice( 8 );

console.info( part1, part2 );

在 FireFox 中工作,但在 Chrome 和 Internet-Explorer 中失败:

TypeError: undefined is not a function*

是否有一种简单的方法来对 Uint8Array 进行切片,该方法适用于所有浏览器?

最佳答案

问题是类型化数组最初是由 Typed Array Specification 定义的,它没有在 TypedArray 接口(interface)中定义任何 slice 方法。

现在类型化数组是 ECMAScript 6 的一部分, 但 Internet Exporer 并不完全支持它。

所以只使用旧规范中定义的方法会更安全。在这种情况下,TypedArray.prototype.subarray从 IE10 开始应该可以工作。

var arr = new Uint8Array( 20 );
var part1 = arr.subarray( 0, 8 );
var part2 = arr.subarray( 8 );
console.info( part1, part2 );

另一种选择是使用 slice在缓冲区上而不是直接在数组上,自 IE11 起支持。

var arr = new Uint8Array( 20 );
var part1 = new Uint8Array( arr.buffer.slice( 0, 8 ) );
var part2 = new Uint8Array( arr.buffer.slice( 8 ) );
console.info( part1, part2 );

关于JavaScript:如何分离 U8IntArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131414/

相关文章:

jquery - 文本区域 : Apply a style on resize

python - 给定一组 3D 点及其相应温度的数组,如何绘制横截面的等高线图?

javascript - 检查选择器是否不存在

javascript - Turbolinks 回调完全加载的页面

javascript - 如何在 Javascript 中获取特定坐标 (x, y) 周围的坐标

javascript - React Native this2 .'function' 不是函数

javascript - 单击复选框清除表单字段

jquery - 提交时清除 Google CSE 输入

javascript - HighCharts pointPlacement 选项在单柱形图中不起作用

c# - 使用 LINQ 拆分数组