首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uint8array javascript和

uint8array javascript和
EN

Stack Overflow用户
提问于 2015-05-15 23:38:30
回答 2查看 1.4K关注 0票数 0

我试着和然后平均一个数据流,这里的一些代码。

代码语言:javascript
复制
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);

数组中的每个元素都返回一个数字,但仍然返回NaN。帮助?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-16 00:31:28

声明的变量totalundefined,这意味着当一个数字被添加到它时,它将创建NaN (不是一个数字)。

此外,类型化数组(ArrayBuffer/views)和Array并不相同,将类型化数组转换为普通数组会使迭代速度变慢,因为类型化数组是实际的字节缓冲区,而数组是(节点)列表。再加上转换本身的成本。

直接加进去就行了。记住除以长度之和,当然还要初始化total

代码语言:javascript
复制
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)
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-15 23:47:13

设置total = 0;目前它默认为未定义的。未定义+a number = NaN,NaN +a number = NaN。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30270242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档