ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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