如何将javascript中uint8array转成普通数组或字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将javascript中uint8array转成普通数组或字符串?相关的知识,希望对你有一定的参考价值。

如何将javascript中uint8array转成普通数组或字符串

Uint8Array对象,8位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。

转换成普通数组的方法:

1、构造
uint8Array = new Uint8Array( length );

2、转换方法:
(1) var array = Array.from(uint8Array)
(2)var array = [].slice.call(uint8Array)

注意事项:

//js往ble写数据的时候,数据类型是arraybuffer类型。在Uint8Array组好数据之后,如果用了

subarray方法,要当心。//subarray返回的Uint8Array.buffer后的内存是subarray前的那片内

存。//如果要新传数据,最好新开辟内存,避免看到的和测到的不一样,产生问题。

参考技术A

转换成普通数组的方法:
1、构造
uint8Array = new Uint8Array( length );
2、转换方法:
(1) var array = Array.from(uint8Array)
(2)var array = [].slice.call(uint8Array)

<script type="text/javascript">
var str = '["haha","\\u003cspan", [123, 456, ["haha2"], "hello, this is a test."]]';
var objarr = eval(str); //和JSON.parse()的功能一样,生成了数组
alert(objarr[1]);


</script>
执行上面的代码试一下,你会发现他会正常的进行转换,你的代码之所以转换错误,是因为字符串里面有双引号,上面字符串里每一对双引号是括起来了一个值,你这样的字符串加进去就破坏了原来用逗号分类开的一对对的值,造成数组语法错误。所以,去掉双引号就可以了。
var str = '["haha","(\\u003cspan dir\\u003d\\ltr\\\\u003e\\u003cspan class\\u003d\\yP\\ email\\u003d\\haha@gmail.com\\\\u003eHa Ha Ha\\u003c/span\\u003e\\u003c/span\\u003e)", [123, 456, ["haha2"], "hello, this is a test."]]';


var objarr = eval(str); //和JSON.parse()的功能一样
alert(objarr[1]);
或者在需要用到双引号的地方用单引号代替,单引号前面要加上\\,即\\‘来代替双引号。

参考技术B

Uint8Array 对象

8 位无符号整数值的类型化数组。内容将初始化为 0。如果无法分配请求数目的字节,则将引发异常。

转换成普通数组的方法:

1、构造

uint8Array = new Uint8Array( length );

2、转换方法:

(1) var array = Array.from(uint8Array)

(2)var array = [].slice.call(uint8Array)

以上是关于如何将javascript中uint8array转成普通数组或字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript 在浏览器中使用 localstorage 存储 Uint8array

create-react-app javascript 将文件转换为 Uint8Array

在 WebAssembly 和 JavaScript 之间传输字节数组 (Uint8Array)

JavaScriptString转Uint8Array

JavaScriptString转Uint8Array

在 javascript ArrayBuffer 中访问 Uint8Array