JavaScript Uint8Array – 使用方法和示例

JavaScript Uint8Array – 使用方法和示例

JavaScript Uint8Array - 使用方法和示例

简介

JavaScript是一种广泛应用的编程语言,用于在Web页面中添加交互性和动态性。而Uint8Array是JavaScript中的一个内置类型,用于表示无符号的8位整数数组。本文将详细介绍Uint8Array的使用方法和示例。

创建Uint8Array

Uint8Array可以通过以下方式进行创建:
1. 通过new关键字和构造函数创建
2. 通过TypedArray.from()方法从其他类型数组创建
3. 通过TypedArray.of()方法从一组指定的值创建

通过new关键字和构造函数创建

可以使用new关键字和构造函数来创建一个空的Uint8Array,并且可以指定其长度。

let uintArray = new Uint8Array(4);
console.log(uintArray);

输出结果:

Uint8Array(4) [0, 0, 0, 0]

以上代码创建了一个长度为4的Uint8Array,并将其初始值都设置为0。

我们还可以通过传递一个带有初始值的数组来创建Uint8Array,其中数组的每个元素将被转换为Uint8Array中的一个8位整数。

let array = [10, 20, 30, 40];
let uintArray = new Uint8Array(array);
console.log(uintArray);

输出结果:

Uint8Array(4) [10, 20, 30, 40]

以上代码创建了一个包含初始值的Uint8Array,其中数组中的每个元素被转换为对应的8位整数。

通过TypedArray.from()方法从其他类型数组创建

TypedArray.from()方法可以从一个具有可迭代对象的数组创建一个新的TypedArray

例如,我们可以从一个常规的数组创建Uint8Array,其中数组元素的类型可以是任何兼容Uint8Array的类型。

let array = [10, 20, 30, 40];
let uintArray = Uint8Array.from(array);
console.log(uintArray);

输出结果:

Uint8Array(4) [10, 20, 30, 40]

以上代码将一个常规的数组转换为对应的Uint8Array

通过TypedArray.of()方法从一组指定的值创建

TypedArray.of()方法可用于创建一个新的TypedArray,并且可以接受多个值作为参数。

let uintArray = Uint8Array.of(10, 20, 30, 40);
console.log(uintArray);

输出结果:

Uint8Array(4) [10, 20, 30, 40]

以上代码利用Uint8Array.of()方法创建了一个包含指定的值的Uint8Array

访问和修改Uint8Array的元素

通过索引可以访问和修改Uint8Array中的元素。索引从0开始,可以使用方括号或者点语法访问元素。

let uintArray = new Uint8Array(4);
uintArray[0] = 10;
uintArray[1] = 20;
console.log(uintArray);

console.log(uintArray[0]);
console.log(uintArray[1]);

输出结果:

Uint8Array(4) [10, 20, 0, 0]
10
20

以上代码修改了Uint8Array的前两个元素,并通过索引访问了这两个元素。

遍历Uint8Array

可以使用for...of循环遍历Uint8Array中的元素。

let uintArray = Uint8Array.of(10, 20, 30, 40);
for (let element of uintArray) {
    console.log(element);
}

输出结果:

10
20
30
40

以上代码使用for...of循环遍历了Uint8Array中的每个元素,并将其打印到控制台上。

Uint8Array的常用操作方法

Uint8Array提供了一些用于操作数组的常用方法,例如set()subarray()slice()等。

set()方法

set()方法用于将一个数组或其他可迭代对象中的值复制到Uint8Array中。

let sourceArray = [35, 46, 57, 68];
let targetArray = new Uint8Array(4);
targetArray.set(sourceArray);
console.log(targetArray);

输出结果:

Uint8Array(4) [35, 46, 57, 68]

以上代码使用set()方法将sourceArray中的值复制到了targetArray中。

subarray()方法

subarray()方法返回一个新的Uint8Array,其中包含了当前Uint8Array的一部分。

let uintArray = Uint8Array.of(10, 20, 30, 40, 50);
let subArray = uintArray.subarray(1, 4);
console.log(subArray);

输出结果:

Uint8Array(3) [20, 30, 40]

以上代码使用subarray()方法获取了uintArray的索引为1到3的子数组。

slice()方法

slice()方法返回一个新的Uint8Array,其中包含了当前Uint8Array的一部分。

let uintArray = Uint8Array.of(10, 20, 30, 40, 50);
let slicedArray = uintArray.slice(1, 4);
console.log(slicedArray);

输出结果:

Uint8Array(3) [20, 30, 40]

以上代码使用slice()方法获取了uintArray的索引为1到3的子数组。

Uint8Array和字符串的相互转换

Uint8Array和字符串之间的相互转换在实际开发中经常会遇到。Uint8Array.from()TextDecoder可以用于从字符串转换为Uint8ArrayTextEncoder可以用于从Uint8Array转换为字符串。

从字符串转换为Uint8Array

可以使用TextEncoder对象将字符串转换为Uint8ArrayTextEncoder是一个内置类,可以将字符串转换为字节数组。

let text = 'Hello, World!';
let encoder = new TextEncoder();
let encodedData = encoder.encode(text);
console.log(encodedData);

输出结果:

Uint8Array(14) [72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33]

以上代码使用TextEncoder将字符串text转换为了对应的Uint8Array

Uint8Array转换为字符串

可以使用TextDecoder对象将Uint8Array转换为字符串。TextDecoder是一个内置类,可以将字节数组转换为字符串。

let uintArray = Uint8Array.of(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33);
let decoder = new TextDecoder();
let decodedData = decoder.decode(uintArray);
console.log(decodedData);

输出结果:

Hello, World!

以上代码使用TextDecoderuintArray转换为对应的字符串。

Uint8Array的常用方法和属性

除了上述提到的操作方法外,Uint8Array还提供了其他一些常用的方法和属性。

length属性

length属性表示Uint8Array中的元素个数。

let uintArray = new Uint8Array(4);
console.log(uintArray.length);

输出结果:

4

以上代码输出了uintArray中的元素个数。

fill()方法

fill()方法用指定的值填充Uint8Array的所有元素。

let uintArray = new Uint8Array(4);
uintArray.fill(5);
console.log(uintArray);

输出结果:

Uint8Array(4) [5, 5, 5, 5]

以上代码将uintArray中的所有元素都设置为5。

copyWithin()方法

copyWithin()方法将Uint8Array中的一部分元素复制到指定位置。

let uintArray = Uint8Array.of(1, 2, 3, 4, 5);
uintArray.copyWithin(2, 0, 2);
console.log(uintArray);

输出结果:

Uint8Array(5) [1, 2, 1, 2, 5]

以上代码将uintArray中索引为0到1的元素复制到了索引为2的位置。

sort()方法

sort()方法用于对Uint8Array中的元素进行排序。

let uintArray = Uint8Array.of(4, 2, 1, 3, 5);
uintArray.sort();
console.log(uintArray);

输出结果:

Uint8Array(5) [1, 2, 3, 4, 5]

以上代码对uintArray中的元素进行了排序。

toString()方法

toString()方法将Uint8Array转换为字符串,并返回结果。

let uintArray = Uint8Array.of(65, 66, 67);
let string = uintArray.toString();
console.log(string);

输出结果:

A,B,C

以上代码将uintArray转换为字符串,并输出结果。

总结

本文介绍了JavaScript中Uint8Array的使用方法和示例。我们了解了如何创建Uint8Array,访问和修改其元素,以及遍历Uint8Array的方法。同时,还了解了Uint8Array的常用操作方法和属性,以及与字符串之间的相互转换。Uint8Array在处理二进制数据时非常有用,可以方便地进行读取和操作。通过掌握Uint8Array的使用,我们能够更好地处理和管理二进制数据。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程