我想在javascript中將字符串轉換爲類型數組(特別是Uint8Array)。我試圖將字符串字符的ASCII值存儲爲單獨的數組元素。如何將字符串存儲爲類型數組?
var myString = 'foo bar baz " >';
var arr = new Uint8Array(myString);
console.log(arr.length); // Why is this 0?
爲什麼我創建的數組的長度是0?
我想在javascript中將字符串轉換爲類型數組(特別是Uint8Array)。我試圖將字符串字符的ASCII值存儲爲單獨的數組元素。如何將字符串存儲爲類型數組?
var myString = 'foo bar baz " >';
var arr = new Uint8Array(myString);
console.log(arr.length); // Why is this 0?
爲什麼我創建的數組的長度是0?
從這個鏈接: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);
}
正如指出的那樣,你的錯誤來自構造函數不接受字符串參數的事實。相反,您可以根據字符串的大小分配數組,然後手動插入字符。
https://developer.mozilla.org/en-US/docs/Web/API/Uint8Array也許是因爲沒有一個構造函數接受'string'? – Yuck 2014-09-04 17:57:47
做什麼var arr = []; arr.push(myString的);的console.log(arr.length); – user1572796 2014-09-04 17:58:22
JavaScript字符串是Unicode/UTF-16。 Unicode是ASCII的超集。因此,如果字符恰好在ASCII範圍內,則只能存儲ASCII值。 – 2014-09-05 02:11:19