我只知道当我将正方形或长方形的数字相加时,它表明我的形状是平行四边形

问题描述 投票:0回答:1

希望你一切都好。我的代码无法正常工作,我不知道出了什么问题或如何修复它。

我只知道当我将正方形或长方形的数字相加时,它表明我的形状是平行四边形。

我已经尝试了我的代码,但输出显示不正确。 我也看过 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");

javascript if-statement shapes
1个回答
0
投票

问题出在

((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)
© www.soinside.com 2019 - 2024. All rights reserved.