Javascript 循环3个数组,仅当第3个数组中有值时,才获取每个索引位置的最大值,否则返回0
是否有一个函数可以循环多个数组,并且仅当最后一个数组中有值时,才能为每个索引位置获取最大值,否则返回0 我在中使用了一个解决方案,其中我可以获得最大值,但只有在最后一个数组中有值时才需要它 以下是我所追求的一个例子:Javascript 循环3个数组,仅当第3个数组中有值时,才获取每个索引位置的最大值,否则返回0,javascript,arrays,Javascript,Arrays,是否有一个函数可以循环多个数组,并且仅当最后一个数组中有值时,才能为每个索引位置获取最大值,否则返回0 我在中使用了一个解决方案,其中我可以获得最大值,但只有在最后一个数组中有值时才需要它 以下是我所追求的一个例子: array1 = [3,54,2,0], array2 = [33,6,1,0], array3 = [0,1,1,11]; 结果=[0,54,2,11]对于相同长度的任意数量的数组,您可以执行以下操作: var result = []; for(var i in array1.
array1 = [3,54,2,0],
array2 = [33,6,1,0],
array3 = [0,1,1,11];
结果=[0,54,2,11]对于相同长度的任意数量的数组,您可以执行以下操作:
var result = [];
for(var i in array1.length) {
if (!array3[i]) {
result.push(0);
}
else {
result.push(Math.max(array1[i], array2[i], array3[i]));
}
}
console.log(result);
var arrs=[[3,54,2,0],[33,6,1,0],[0,1,1,11],
结果=arrs.reduce((p,c,i,a)=>in>c[j]?n:c[j])
:p.map((n,j)=>n>c[j]&&c[j]?n:c[j]);
控制台日志(结果)代码>您可以使用检查和映射,并从右侧使用
它从数组的右侧开始,并考虑零值。如果以零值开始,则将零值用作结果值
var数组=[[3,54,2,0],[33,6,1,0],[0,1,1,11],
结果=数组.reduceRight(函数(r,a){
返回r.map(函数(b,i){
返回b&&Math.max(b,a[i])|0;
});
});
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
0不是一个值?这是最好的答案。
r [ 0, 1, 1, 11]
a [33, 6, 1, 0]
------ ----------------
r [ 0, 6, 1, 11]
a [ 3, 54, 2, 0]
------ ----------------
result [ 0, 54, 2, 11]
^^
column with zero as start value