这段代码假设判断三边长是否是三 Angular 形, 然而出了问题,我无法理解什么,因为我相信逻辑是存在的......
任何人都可以看一下这段代码并让我走上正确的轨道吗...我也想知道为什么我不能将带有元素的数组分配为函数参数,例如:
函数 isTriangle(arrAline[i]
....等等?
我绝对是初学者,这让我很困惑:D
let arrAline = [474, 431, 372, 1887, 1064, 3212, 1057];
let arrBline = [684, 623, 525, 548, 573, 1328, 2376];
let arrCline = [1339, 709, 1179, 881, 304, 956, 959];
let i = 0;
function isTriangle(arrAline, arrBline, arrCline) {
for (i = 0; i < arrAline.length; i++) {
if (arrAline[i] + arrBline[i] > arrCline[i] && arrAline[i] + arrCline[i] > arrBline[i] && arrCline[i] + arrBline[i] > arrAline[i]) {
return true;
} else {
return false;
}
}
};
isTriangle(arrAline[i], arrBline[i], arrCline[i]);
//a + b > c
//a + c > b
//c + b > a
谢谢!
最佳答案
主要问题是您混淆了 i
的使用。您可以定义 i
在函数本地,不要在函数调用中使用它,或者将循环移到函数外部,进入主代码。
如果您采用第一种方法,那么问题是您 (1) 不将数组作为函数参数传递,并且 (2) 始终 return
在 for
循环。
无论结果如何,您都应该迭代所有条目,而不仅仅是在第一次迭代时退出,而使所有其他条目未被访问。
相反,您应该收集新数组中的 bool 结果,并继续迭代,然后在访问所有条目后,返回该结果数组。
旁注:在这种情况下,不要定义 i
在你的职能之外。它应该在函数内声明为局部变量。
这是如何工作的:
function isTriangle(arrAline, arrBline, arrCline) {
let result = [];
for (let i = 0; i < arrAline.length; i++) {
if (arrAline[i] + arrBline[i] > arrCline[i] && arrAline[i] + arrCline[i] > arrBline[i] && arrCline[i] + arrBline[i] > arrAline[i]) {
result.push(true);
} else {
result.push(false);
}
}
return result;
};
let arrAline = [474, 431, 372, 1887, 1064, 3212, 1057];
let arrBline = [684, 623, 525, 548, 573, 1328, 2376];
let arrCline = [1339, 709, 1179, 881, 304, 956, 959];
console.log(isTriangle(arrAline, arrBline, arrCline)); // don't use `i` here.
您当然也可以采用第二种方法,这样就不需要 result
变量,但也不要将函数参数用作数组,并移动 for
循环到主代码:
function isTriangle(aline, bline, cline) {
if (aline + bline > cline && aline + cline > cline && cline + bline > aline) {
return true;
} else {
return false;
}
};
let arrAline = [474, 431, 372, 1887, 1064, 3212, 1057];
let arrBline = [684, 623, 525, 548, 573, 1328, 2376];
let arrCline = [1339, 709, 1179, 881, 304, 956, 959];
for (let i = 0; i < arrAline.length; i++) {
console.log(isTriangle(arrAline[i], arrBline[i], arrCline[i]));
}
关于javascript - 确定其三 Angular 形javascript代码是否有问题/初学者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58899303/