[英]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.