使用Heron'计算面积的公式-JavaScript

Using Heron's formula to calculate area - JavaScript

本文关键字:-JavaScript 计算 Heron 使用      更新时间:2023-09-26

我的代码:

function calculate(sides) {
  var sides = prompt("Triangle side lengths in cm
  (number,number,number)"); //String will be size of 4
  var nsides = sides.split(" "); //Splits content into array format
  //Convert Array instances to integer values a,b,c
  for(var loop=0;loop<=nsides.length;loop++)   {
  if(nsides[loop]!=",")
  a = nsides[loop];
  if(nsides[loop]!=",")
  b = nsides[loop];
  if(nsides[loop]!=",")
  c= nsides[loop];
  } //End for    
  //Area Calculation
  var s = (a+b+c)*0.5 ; //represents the semiperimeter 
  var area = Math.sqrt(s*(s-a)*s(s-b)*(s-c)) //area calculation
      //Result
  sides = alert("The triangle's area is " + area + " square cm");

}   //End function
 //Main calculate(length);

我想把a、b和c边设为整数;然而,为了做到这一点,我必须遍历数组(我首先将其从字符串转换为数组)

稍后我将添加一些标准验证;到目前为止,我似乎无法将输入的字符串中的值放入3个独立的整数中,即b和c。

除此之外,还有更好的方法吗?

谢谢。

也许我误解了你的问题,但这就是你想要的吗?

var sides = prompt("Triangle side lengths in cm (number,number,number)");
var nsides = sides.split(","); 
var a = +nsides[0];
var b = +nsides[1];
var c = +nsides[2];
//Area Calculation
//...

请注意使用+将数组中的字符串强制转换为数字。

function calculate() {
    var sides = prompt("Triangle side lengths in cm (number,number,number)"),
        nsides = sides.split(","),
        a = parseFloat(nsides[0]),
        b = parseFloat(nsides[1]),
        c = parseFloat(nsides[2]),
        s = (a + b + c) / 2,
        area = Math.sqrt(s * (s - a) * (s - b) * (s - c));
    alert("The triangle's area is " + area + " square cm");
    return area; // return the area
}

首先,我删除了您的参数,它完全没有必要,并且被第一行中的sides声明覆盖了。然后我将拆分更改为,,以便按照您的指示进行操作。然后,您需要使用parseInt将字符串解析为整数,并指定基数10,然后可以继续计算。最后一件事,您编写了Math.sqrt(s*(s-a)*s(s-b)*(s-c)),看到s(s-b)会导致异常,因为您正在使用一个要作为函数调用的数字。