docs(arraybuffer): edit arraybuffer

This commit is contained in:
ruanyf
2018-02-08 18:17:29 +08:00
parent d6045d09c9
commit 3c4b9d1a63
3 changed files with 13 additions and 3 deletions
+11 -1
View File
@@ -454,7 +454,17 @@ Float64Array.BYTES_PER_ELEMENT // 8
function ab2str(buf) {
// 注意,如果是大型二进制数组,为了避免溢出,
// 必须一个一个字符地转
return String.fromCharCode.apply(null, new Uint16Array(buf));
if (buf && buf.byteLength < 1024) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
const bufView = new Uint16Array(buf);
const len = bufView.length;
const bstr = new Array(len);
for (let i = 0; i < len; i++) {
bstr[i] = String.fromCharCode.call(null, bufView[i]);
}
return bstr.join('');
}
// 字符串转为 ArrayBuffer 对象,参数为字符串