Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การตรวจสอบเมทริกซ์บางประเภทใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่ใช้อาร์เรย์ 2-D ของตัวอักษร arr เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์เดียว

ฟังก์ชันของเราควรตรวจสอบว่าทุกเส้นทแยงมุมจากบนซ้ายไปล่างขวามีองค์ประกอบเหมือนกันหรือไม่

ถ้าเป็นเช่นนั้นเราควรคืนค่าจริงเท็จมิฉะนั้น

ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ

ป้อนข้อมูล

const arr = [
   [6, 7, 8, 9],
   [2, 6, 7, 8],
   [1, 2, 6, 7],
];

ผลผลิต

const output = true;

คำอธิบายผลลัพธ์

ในอาร์เรย์ด้านบน เส้นทแยงมุมคือ −

[1], [2,2], [6,6,6], [7,7,7], [8,8], [9]

ในแต่ละเส้นทแยงมุม องค์ประกอบทั้งหมดเหมือนกัน ดังนั้น คำตอบคือ จริง

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

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));

ผลลัพธ์

true