Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การรวมอาร์เรย์ Boolean ด้วย AND Operator - JavaScript

รวมอาร์เรย์ 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 สะสมผลลัพธ์ในอาร์เรย์ acc
  • forEach วนแต่ละคอลัมน์
  • acc[ind] && bool AND ระหว่างค่าสะสมกับค่าปัจจุบัน
  • || false จัดการค่า undefined เริ่มต้น

ผลลัพธ์

[ false, false, false ]

ทางเลือก: ใช้ Math.min(...col) หรือ col.every(Boolean) สำหรับ boolean