Добрый день. Я только разбираюсь с JavaScript, пробую написать простой скрип с условиями. Но по факту условия считываются неправильно - при любых входных данных скрип выдает результат последнего условия (('1 (Scalene)').
Помогите разобраться где у меня ошибка! Спасибо!
function displayResult() {
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var c = document.getElementById('c').value;
document.getElementById('result').innerHTML = calculateResult(a, b, c);
}
function calculateResult() {
if (a == b && b == c) {
return ('3 (Equilateral)')
} else if (a >= (b + c) || c >= (b + a) || b >= (a + c)) {
return ('4 (Error. Not a triangle)')
} else if ((a == b && b != c) || (a != b && c == a) || (c == b && c != a)) {
return ('2 (Isosceles)')
} else if (a != b && b != c && c != a) {
return ('1 (Scalene)')
}
}
<input type="text" name="a" id="a" placeholder="Side a">
<input type="text" name="b" id="b" placeholder="Side b">
<input type="text" name="c" id="c" placeholder="Side c">
<input type="button" id="calculate" onclick="displayResult()" value="Triangle type">
<br>
<p id="result"></p>
Не работает, потому что calculateResult() определена без использования переменных и заданные a, b, c в ней не используются, а используются какие-то другие переменные с неизвестными значениями.
Исправьте строчку function calculateResult() на function calculateResult(a, b, c):
function displayResult() {
var a = document.getElementById('a').value;
var b = document.getElementById('b').value;
var c = document.getElementById('c').value;
document.getElementById('result').innerHTML = calculateResult(Number(a), Number(b), Number(c));
}
function calculateResult(a, b, c) {
if (a == b && b == c) {
return ('3 (Equilateral)')
} else if (a >= (b + c) || c >= (b + a) || b >= (a + c)) {
return ('4 (Error. Not a triangle)')
} else if ((a == b && b != c) || (a != b && c == a) || (c == b && c != a)) {
return ('2 (Isosceles)')
} else if (a != b && b != c && c != a) {
return ('1 (Scalene)')
}
}
<input type="text" name="a" id="a" placeholder="Side a">
<input type="text" name="b" id="b" placeholder="Side b">
<input type="text" name="c" id="c" placeholder="Side c">
<input type="button" id="calculate" onclick="displayResult()" value="Triangle type">
<br>
<p id="result"></p>
Как справедливо заметили в комментариях, чтобы сравнение работало правильно, нужно значения переменных перевести в числа. Например, при вызове функции:
document.getElementById('result').innerHTML = calculateResult(Number(a), Number(b), Number(c));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости