Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript合并多个布尔数组和OR | |运算符_Javascript_Arrays - Fatal编程技术网

JavaScript合并多个布尔数组和OR | |运算符

JavaScript合并多个布尔数组和OR | |运算符,javascript,arrays,Javascript,Arrays,我想使用or | |运算符合并此数组 [[true,false,false],[false,false,false],[false,false,true]] 所以输出是 [true,false,true] 使用map或REDUCT或类似工具是否可以实现这一点 编辑:很抱歉这个问题不清楚-是的,它是垂直合并所有子数组在一起。因此,以下输入: [[true,false,false],[false,false,false],[false,false,true],[false,false,true]

我想使用or | |运算符合并此数组

[[true,false,false],[false,false,false],[false,false,true]]
所以输出是

[true,false,true]
使用map或REDUCT或类似工具是否可以实现这一点

编辑:很抱歉这个问题不清楚-是的,它是垂直合并所有子数组在一起。因此,以下输入:

[[true,false,false],[false,false,false],[false,false,true],[false,false,true]]
将产生相同的输出:

[true,false,true]

你可以用下面的方法来做

让arr=[[true,false,false],[false,false,false],[false,false,true];
arr=arr.map(函数(元素){
返回元素.reduce(函数(a,b){
返回(a | b);
})
})

控制台日志(arr)您可以使用映射相同索引值的数组进行缩减

var数组=[[true,false,false],[false,false,false],[false,false,true]],
结果=数组.reduce((a,b)=>a.map((c,i)=>b[i]| c));

控制台日志(结果)当您使用
一些
时,您并不真正需要
|

var数组=[[true,false,false],[false,false,false],[false,false,true];
var result=array[0].map((uu,i)=>array.some(a=>a[i]);

控制台日志(结果)合并的逻辑条件是什么?1。你希望第一个
true
a[0][0]| a[0][1]| a[0][2]
还是
a[0][0]| a[1][0]| a[2][0]
?2.你试图解决这个问题的方法是什么?好吧,多亏了这个不清楚的问题,你现在有了双向的答案。:-)如果你想要第一个,如果你想要第二个。换句话说,TJ的观察,你是垂直合并还是水平合并?您是合并每个数组还是合并所有数组中索引处的值?取决于它们希望以何种方式进行合并。有两个符合问题的输入和输出one@marvel308说清楚点。。你不符合逻辑,你是按位的,你可以使用
Boolean
作为cb。这是一个多么简洁的水平合并解决方案-谢谢。但我想做一个垂直合并。