如何将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]);
或者在需要用到双引号的地方用单引号代替,单引号前面要加上\\,即\\‘来代替双引号。
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