簡體   English   中英

計算JavaScript中數組的數值總和

[英]Compute sum of numerical values of an array of arrays in JavaScript

輸入以下內容:

myArray = [[32.4, "bla", 1.44, 0.5, 65.8, "abc"],
           [654, "ert"]
           [9.4, "a", 1.44, "abc"]];

數組數組,我想計算每個子數組的總和,也忽略字符串值。

我知道對於這種類型的單個數組,總和可以計算為:

sum = myArray.filter(n => !isNaN(n)).reduce((m, n) => m + n);

但是當我嘗試對矩陣使用相同的方法時,結果為0

有什么建議么?

您可以嘗試將值轉換為帶有一元加號+的數字,也可以取零進行加法。

 var array = [[32.4, "bla", 1.44, 0.5, 65.8, "abc"], [654, "ert"], [9.4, "a", 1.44, "abc"]], result = array.map(a => a.reduce((s, v) => s + (+v || 0), 0)); console.log(result); 

您可以使用map方法和內部filter僅獲取數字數組,然后reduce以獲取每個數組的總和。

 const myArray = [ [32.4, "bla", 1.44, 0.5, 65.8, "abc"], [654, "ert"], [9.4, "a", 1.44, "abc"] ]; const result = myArray.map(arr => { return arr .filter(Number) .reduce((r, e) => r + e) }) console.log(result) 

現在,當您處理數組數組時,可以應用相同的代碼,但是它必須在外部reduce才能遍歷外部數組:

const sum = myArray.reduce(
    (s, arr) => s + arr.filter(n => !isNaN(n)).reduce((m, n) => m + n),
    0
);

現場示例:

 const myArray = [ [32.4, "bla", 1.44, 0.5, 65.8, "abc"], [654, "ert"], [9.4, "a", 1.44, "abc"] ]; const sum = myArray.reduce((s, arr) => s + arr.filter(n => !isNaN(n)).reduce((m, n) => m + n), 0); console.log(sum); 

暫無
暫無

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

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