เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอาร์เรย์ แต่ละ subarray จะประกอบด้วยสองรายการ โดยแทนพิกัด x และ y ตามลำดับ
ฟังก์ชันของเราควรตรวจสอบว่าพิกัดที่ระบุโดยอาร์เรย์ย่อยเหล่านี้เป็นเส้นตรงหรือไม่
ตัวอย่างเช่น −
[[4, 5], [5, 6]] should return true.
รับประกันอาร์เรย์ว่ามีอย่างน้อยสองอาร์เรย์ย่อย
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const coordinates = [
[4, 5],
[5, 6]
];
const checkStraightLine = (coordinates = []) => {
if(coordinates.length === 0) return false;
let x1 = coordinates[0][0];
let y1 = coordinates[0][1];
let slope1 = null;
for(let i=1;i<coordinates.length;i++){
let x2= coordinates[i][0];
let y2= coordinates[i][1];
if(x2-x1 === 0){
return false;
}
if(slope1 === null){
slope1 = (y2-y1) / (x2-x1);
continue;
}
let slope2 = (y2-y1) / (x2-x1);
if(slope2 != slope1){
return false;
}
}
return true;
};
console.log(checkStraightLine(coordinates)); คำอธิบาย
เรากำหนดความชันของแต่ละจุดด้วยจุดแรกหากความชันเท่ากัน มันจะเป็นเส้นตรง มิฉะนั้น หากจุดใดจุดหนึ่งมีความชันต่างกัน หมายความว่า จุดจะไม่อยู่บนเส้นเดียวกัน
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
true