如何将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前的那片内

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-03

转换成普通数组的方法:
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\[email protected]\\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]);
或者在需要用到双引号的地方用单引号代替,单引号前面要加上\,即\‘来代替双引号。

第2个回答  2018-01-03

Uint8Array 对象

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

转换成普通数组的方法:

1、构造

uint8Array = new Uint8Array( length );

2、转换方法:

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

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

相似回答