uint8array javascript的总和
我试图对数据流求和,然后求平均值,这里有一些代码uint8array javascript的总和,javascript,ecmascript-6,typed-arrays,Javascript,Ecmascript 6,Typed Arrays,我试图对数据流求和,然后求平均值,这里有一些代码 var getAverage = function(dataArray){ var total, sample = dataArray.length, eArray = Array.prototype.slice.call(dataArray); for (var i = 0; i< sample; i++) { total+= eArray[i];
var getAverage = function(dataArray){
var total,
sample = dataArray.length,
eArray = Array.prototype.slice.call(dataArray);
for (var i = 0; i< sample; i++) {
total+= eArray[i];
}
return total;
}
var output = function(){
//source data
var dataArray = new Uint8Array(bufferLength);
analyser.getByteTimeDomainData(dataArray);
var average = getAverage(dataArray);
$('#average').text(average);
window.requestAnimationFrame(output);
var getAverage=函数(dataArray){
var总计,
sample=dataArray.length,
Array=Array.prototype.slice.call(dataArray);
对于(变量i=0;i
数组中的每个元素都返回一个数字,但它仍然返回NaN.Help?设置总数=0;当前它默认为未定义。未定义+a数字=NaN,且NaN+a数字=NaN。设置总数=0;当前它默认为未定义。未定义+a数字=NaN,且NaN+a数字=NaN。声明的变量
total
是未定义的
,这意味着在向其添加数字时,它将创建NaN
(非数字)
此外,类型化数组(ArrayBuffer/views)和数组是不同的,将类型化数组转换为普通数组会使迭代速度变慢,因为类型化数组是实际的字节缓冲区,而数组是(节点)列表。这是转换本身的成本之外的
直接相加即可。记住按长度除以总和,当然要初始化总计:
var getAverage = function(dataArray){
var total = 0, // initialize to 0
i = 0, length = dataArray.length;
while(i < length) total += dataArray[i++]; // add all
return length ? total / length : 0; // divide (when length !== 0)
}
var getAverage=函数(dataArray){
var total=0,//初始化为0
i=0,length=dataArray.length;
while(i
声明的变量total
是未定义的
,这意味着在向其添加数字时,它将创建NaN
(非数字)
此外,类型化数组(ArrayBuffer/views)和数组是不同的,将类型化数组转换为普通数组会使迭代速度变慢,因为类型化数组是实际的字节缓冲区,而数组是(节点)列表。这是转换本身的成本之外的
直接相加即可。记住按长度除以总和,当然要初始化总计:
var getAverage = function(dataArray){
var total = 0, // initialize to 0
i = 0, length = dataArray.length;
while(i < length) total += dataArray[i++]; // add all
return length ? total / length : 0; // divide (when length !== 0)
}
var getAverage=函数(dataArray){
var total=0,//初始化为0
i=0,length=dataArray.length;
while(i
您的dataArray看起来像什么?它看起来像是在连接,而不是向我添加数字。您的dataArray看起来像什么?它看起来像是在连接,而不是向我添加数字。