Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript lấy mảng 2-D gồm các ký tự, arr, làm đối số đầu tiên và duy nhất.
Hàm của chúng ta sẽ kiểm tra xem mọi đường chéo từ trên cùng bên trái đến dưới cùng bên phải có cùng một phần tử hay không.
Nếu đúng như vậy, chúng ta nên trả về true, ngược lại là false.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const arr = [ [6, 7, 8, 9], [2, 6, 7, 8], [1, 2, 6, 7], ];
Đầu ra
const output = true;
Giải thích đầu ra
Trong mảng trên, các đường chéo là -
[1], [2,2], [6,6,6], [7,7,7], [8,8], [9]
Trong mỗi đường chéo, tất cả các phần tử đều giống nhau, vì vậy câu trả lời là Đúng.
Ví dụ
Sau đây là mã -
const arr = [ [6, 7, 8, 9], [2, 6, 7, 8], [1, 2, 6, 7], ]; const checkMatrix = (arr = []) => { const validate = (row, col) => { while ( row < arr.length && col < arr[0].length && arr[row + 1] && arr[row + 1][col + 1] !== undefined ) { if (arr[row + 1][col + 1] !== arr[row][col]) { return false } row += 1 col += 1 } return true } for (let i = 0; i < arr[0].length; i++) { if (!validate(0, i)) { return false } } for (let i = 0; i < arr.length; i++) { if (!validate(i, 0)) { return false } } return true } console.log(checkMatrix(arr));
Đầu ra
true