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看起来像什么?它看起来像是在连接,而不是向我添加数字。