我有一个包含随机数量的布尔值数组,这些数组具有相同的长度。
arrBefore = [arr1, arr2, ..., arrn];
我想返回一个包含布尔值的单一数组,如果索引处的任何值为true,则该数组中对应的位置也为true,否则为false。
arrBefore = [[true, false, false], [false, false, false], [true, false, true], [true, false, true]];
arrAfter = reduceMyArr(arrBefore);
console.log(arrAfter);
//[true, false, true]
我知道如何用for循环实现,但我想改用map()和reduce()。我在站点上找不到解决方案。非常感谢任何帮助。
更新1:
我的示例选择不当,导致答案中有些混淆。我想比较内部数组的索引。因此,结果应该是一个与内部数组长度相同的数组。如果arr1[i]、arr2[i]、...、arrn[i]中至少包含一个true,则arrAfter[i]应为true,否则为false。
更新2:
根据评论中的要求,提供一些更多的示例。
arrBefore = [[true],[false],[true],[false]];
arrAfter = [true];
---
arrBefore = [[true, false],[false, false], [false, true], [false, false], [true, true]];
arrAfter = [true, true];
---
arrBefore = [[true, false, false, false], [true, true, false, false]];
arrAfter = [true, true, false, false];
---
arrBefore = [[true, true, false, false, false], [false, false, false, false, true]];
arrAfter = [true, true, false, false, true];
[ [true, true], [true] ]
?如果是这样,那么预期的输出是什么?哦,而且您是否绝对需要使用map
和reduce
?因为可能有更合适的工具。 - VLAZ