Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Gộp mảng boolean bằng toán tử AND - JavaScript

Viết hàm gộp mảng 2 chiều boolean thành mảng 1 chiều bằng phép AND (&&) trên các cột tương ứng.

Ví dụ

Đầu vào: [[true,false,false], [false,false,false], [false,false,true]]

Cột 0: true && false && false = false

Cột 1: false && false && false = false

Cột 2: false && false && true = false

Kết quả: [false, false, false]

Giải pháp

Mã triển khai dùng reduce:

const arr = [[true,false,false],[false,false,false],[false,false,true]];

const andMerge = (arr = []) => 
  arr.reduce((acc, val) => {
    val.forEach((bool, i) => {
      acc[i] = (acc[i] ?? true) && bool;
    });
    return acc;
  }, []);

console.log(andMerge(arr));

Kết quả

Đầu ra trong console:

[false, false, false]

Sửa lỗi code gốc: acc[ind] = acc[ind] && bool || false sai logic. Cần khởi tạo acc[i] = true.