希望你一切都好。我的代码无法正常工作,我不知道出了什么问题或如何修复它。
我只知道当我将正方形或长方形的数字相加时,它表明我的形状是平行四边形。
我已经尝试了我的代码,但输出显示不正确。 我也看过 YouTube 视频,但没有任何帮助。请尽快告知。
let side1 = prompt("Please enter the side of the shape");
let side2 = prompt("Please enter the side of the shape");
let side3 = prompt("Please enter the side of the shape");
let side4 = prompt("Please enter the side of the shape");
let corner1 = prompt("Please enter the corners of the shape");
let corner2 = prompt("Please enter the corners of the shape");
let corner3 = prompt("Please enter the corners of the shape");
let corner4 = prompt("Please enter the corners of the shape");
if (
side1 === side2 &&
side2 === side3 &&
side3 === side4 &&
((corner1 === corner2) === corner3) === corner4
) {
console.log(`The shape is a Square`);
} else if (
side1 === side3 &&
side2 === side4 &&
((corner1 < 90 && corner3 > 90 && corner2 < 90 && corner4 > 90) ||
(corner1 > 90 && corner3 < 90 && corner2 > 90 && corner4 < 90))
) {
console.log(`The shape is a Rhombus`);
} else if (
side1 === side3 &&
side2 === side4 &&
corner1 === corner3 &&
corner2 === corner4
) {
console.log(`The shape is a Parallelogram`);
} else if (
side1 === side3 &&
side2 === side4 &&
corner1 === corner2 &&
corner3 === corner4
) {
console.log(`The shape is a Rectangle`);
} else console.log("Your shape is weird");
问题出在
((corner1 === corner2) === corner3) === corner4
,它应该以与代码中的侧面进行类似测试相同的方式表达,即:
corner1 === corner2 && corner2 === corner3 && corner3 === corner4
Array.prototype.every
来测试多个值是否都相等,方法是将第一个值与其他每个值进行比较:
[corner2, corner3, corner4].every(v => v === corner1)
也可以对侧面进行:
[side2, side3, side4].every(v => v === side1)