使用newArray()替换Uint8Array(),Uint16Array(),Uint64Array(),Float64Array()等方法
经过测试有效
function newArray(e){
t = []
//debugger
if (e.constructor == Array){
for (var n = 0; n < e.length; n++)
t.push(e[n]);
}else if (e.constructor == Number){
for (var n = 0; n < e; n++)
t.push(0);
}
return t
}
.subarray()使用 .slice() 替换
由于 slice产生新ArrayBuffer,subarray和原对象共享ArrayBuffer,在直接传递 subarray() 方法的函数中,就无法简单的用 slice 替换 subarray.需要做以下修改
//原代码.因为在方法 pack内直接使用edsk来填充数据,所以出来后edsk数据带出来的,如果直接用slice,则出来的edsk就没有后面的数据了
pack(edsk.subarray(32), p);
//新代码
var edsks = edsk.slice(32);
pack(edsks, p);
for (i = 0; i < edsks.length; i++) edsk[32 + i] = edsks[i]; //将得到的数据回填到edsk的对应位置中即可
如果是: var x = edsk.subarray(32);//赋值型,则直接改为 var x = edsk.slice(32);//即可