我正在尝试在javascript中将字符串转换为类型化数组(特别是Uint8Array)。我正在尝试将字符串字符的ASCII值存储为单独的数组元素。
var myString = 'foo bar baz " >';
var arr = new Uint8Array(myString);
console.log(arr.length); // Why is this 0?
为什么我创建的数组的长度是0?
答案 0 :(得分:1)
从此链接:http://jsperf.com/string-to-uint8array
这是从字符串创建Uint8Array
的最快方法:
var str = "your string here";
var uint = new Uint8Array(str.length);
for(var i=0, j=str.length; i<j; ++i){
uint[i] = str.charCodeAt(i);
}
正如所指出的,您的错误来自构造函数不接受字符串参数的事实。相反,您可以根据字符串的大小分配数组,并手动插入字符。
答案 1 :(得分:0)
从this link你可以看到你的构造函数需要一个长度或一个参数的数组。
我会建议:
var myString = 'foo bar baz " >';
var arr = new Uint8Array(myString.length);
console.log(arr.length);