我的代码:
函数计算(边){ var边=提示符(“三角边长度( cm (number,number,number) ");//字符串大小为4 var nside= sides.split(”");//将内容拆分为数组格式//将数组实例转换为整数值a,b,c,用于(var loop=0;loop<=nsides.length;loop++) { if(nsidesloop!=",") a= nsidesloop;if(nsidesloop!=",“)b= nsidesloop;如果(nsidesloop!=“,") c= nsidesloop;} //End for //Area计算var s= (a+b+c)*0.5;//表示半周界变量面积= Math.sqrt(s*(s-a)*s(s-b)*(s-c)) //区域计算//结果边=警报(”三角形区域为“+”平方厘米“);}//结束函数//主计算(长度);
我希望将a、b和c设置为整数;但是,为了做到这一点,我必须遍历数组(我首先将其从字符串转换为数组)。
稍后我将添加一些标准验证;到目前为止,我似乎无法将输入到3个独立整数中的值放在b和c中。
除此之外,还有什么更好的方法吗?
谢谢。
发布于 2013-07-10 18:45:04
也许我误解了你的问题,但这就是你要找的吗?
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
//...注意使用+将字符串从数组中强制转换为数字。
发布于 2013-07-10 19:17:15
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)会导致异常,因为您使用的是作为函数调用的数字。
https://stackoverflow.com/questions/17578218
复制相似问题