我有这样的输出(多维数组);
(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)
我想获取每个值并将它们相乘并返回值。我该怎么办?
答案 0 :(得分: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)
答案 1 :(得分:0)
喜欢吗?
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))
答案 2 :(得分:0)
您可以使用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);
答案 3 :(得分:0)
首先,如果您需要将数字连接成一个数字,则可能应该检查为什么数字会作为数组出现。但是,使用您提供给我们的东西...
首先,您必须获取每个内部数组并将其作为一个数字连接。我能想象到的最好方法是将每个数字强制转换为字符串,然后将它们连接起来,然后强制转换为Number,如下所示:
const numbersArray = outerArray
.map(innerArray =>
innerArray.map(number => number.toString()).join(''))
.map(Number)
在映射数组之后,您可以reduce
将其numbersArray.reduce((product, each) => product * each, 1)
乘以一个整数(沿1递增,因为我们不希望初始值改变结果):
implementation 'com.android.support.test:runner:1.0.2' //wrong!!