I was trying to get the largest input in HTML using JavaScript, but I cannot seem to get what's wrong with my code. could someone please help.
var numbers = [];
var output = document.getElementById("result");
function largest() {
var number = document.getElementById("number");
numbers.push(number.value);
var max = Math.max(numbers);
alert(max);
number.innerHTML = "";
output.innerHTML = max;
}
<p>Enter a number
<input type="text" id="number" onchange="largest()"><br> Largest:
<span id="result"></span>
</p>
You needed a plus (unary plus operator) and a spread ... to handle Math.max with an array
var numbers = [];
var output = document.getElementById("result");
function largest() {
var number = document.getElementById("number");
numbers.push(+number.value);
var max = Math.max(...numbers);
console.log(max);
number.innerHTML = "";
output.innerHTML = max;
}
<p>Enter a number
<input type="text" id="number" onchange="largest()"><br> Largest:
<span id="result"></span>
</p>
With sort() and revers() you can archive this too.
const numbers = [];
const output = document.getElementById("result");
function largest() {
var number = document.getElementById("number");
numbers.push(+number.value);
const max = numbers.sort().reverse()[0];
number.innerHTML = "";
output.innerHTML = max;
}
<p>
Enter a number
<input type="text" id="number" onchange="largest()"><br> Largest:
<span id="result"></span>
</p>
Please try with code below
var max = Math.max(numbers); ===> var max = Math.max(...numbers);