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

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

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ 2 มิติของค่าคงที่ arr เป็นอาร์กิวเมนต์เดียว

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

หากเป็นเช่นนั้น ให้คืนค่า true, มิฉะนั้น false

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

อินพุต

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]

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

ตัวอย่างโค้ด

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