簡體   English   中英

uint8array JavaScript的總和

[英]sum of uint8array 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。 救命?

設置總數= 0; 當前默認為未定義。 未定義+數字= NaN,而NaN +數字= NaN。

聲明的變量totalundefined ,這意味着當添加數字時,它將創建NaN (非數字)。

同樣,類型化數組(ArrayBuffer /視圖)和數組也不相同,將類型化數組轉換為普通數組會使迭代變慢,因為類型化數組是實際的字節緩沖區,而數組是(節點)列表。 那除了轉換成本本身。

只需直接添加即可。 請記住,將總和除以長度,當然要初始化total

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)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM