รวมอาร์เรย์ 2 มิติของค่า boolean ด้วย AND (&&) ตามคอลัมน์
ตัวอย่าง
Input: [[true,false,false],[false,false,false],[false,false,true]] Output: [false, false, false]
ตัวอย่างโค้ด
const arr = [[true,false,false],[false,false,false],[false,false,true]];
const andMerge = (arr = []) => {
return arr.reduce((acc, val) => {
val.forEach((bool, ind) => {
acc[ind] = acc[ind] && bool || false;
});
return acc;
}, []);
};
console.log(andMerge(arr));
การทำงาน
reduceสะสมผลลัพธ์ในอาร์เรย์accforEachวนแต่ละคอลัมน์acc[ind] && boolAND ระหว่างค่าสะสมกับค่าปัจจุบัน|| falseจัดการค่า undefined เริ่มต้น
ผลลัพธ์
[ false, false, false ]
ทางเลือก: ใช้ Math.min(...col) หรือ col.every(Boolean) สำหรับ boolean