簡體   English   中英

如何將多維數組內的所有值相乘

[英]How to multiply all values inside multidimensional array

我有這樣的輸出(多維數組);

    (4) [Array(3), Array(2), Array(2), Array(2)]
    0: (3) [9, 8, 9]
    1: (2) [5, 6]
    2: (2) [6, 7]
    3: (2) [4, 4]
    length: 4
    __proto__: Array(0)

我想獲取每個值並將它們相乘並返回值。 我怎么做?

您可以使用.reduce來做到這一點。

您只需要加入數組即可獲得有效數字。

[9, 8, 9].join('') == 989

之后,將它們相乘即可得到所需的輸出

參見示例:

 var arr = [[9, 8, 9],[5, 6],[6, 7],[4, 4]]; var res = arr.reduce(function (a,b) { return a * b.join(''); }, 1); console.log(res) 

像這樣?

 function multiply(array){ var x=1 for(i in array){ x*=parseInt(array[i].join("")) } return x } var something=[[9,8,9],[5,6],[6,7],[4,4]] console.log(multiply(something)) 
我希望這個能幫上忙!

您可以使用reduce。

 const data = [[9, 8, 9], [5, 6], [6, 7], [4, 4]]; const result = data.reduce((acc, val) => val.join('') * acc, 1); console.log(result); 

首先,如果您需要將數字連接成一個數字,則可能應該檢查為什么數字會作為數組出現。 但是,使用您提供給我們的東西...

首先,您必須獲取每個內部數組並將其作為一個數字連接。 我能想象到的最好方法是將每個數字強制轉換為字符串,將它們連接起來,然后強制轉換為Number,如下所示:

const numbersArray = outerArray
  .map(innerArray =>
    innerArray.map(number => number.toString()).join(''))
  .map(Number)

映射完數組后,您可以將其reduce為一個數字,並乘以1(從1開始,因為我們不希望初始值更改結果):

numbersArray.reduce((product, each) => product * each, 1)

暫無
暫無

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

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