Tích AND của các mảng trong JavaScript
Chúng ta có một mảng các mảng boolean như sau:
const arr = [[true,false,false],[false,false,false],[false,false,true]];
Chúng ta cần viết một hàm gộp mảng các mảng này thành một mảng một chiều bằng cách kết hợp các phần tử tương ứng của mỗi mảng con bằng toán tử AND (&&).
Hãy viết mã cho hàm này. Chúng ta sẽ sử dụng hàm Array.prototype.reduce() để đạt được điều này.
Ví dụ
Mã thực hiện như sau:
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));
Đầu ra
Kết quả trong console sẽ là:
[ false, false, false ]