Reputation: 21
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>
Upvotes: 2
Views: 57
Reputation: 17566
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>
Upvotes: 1
Reputation: 177885
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>
Upvotes: 2
Reputation: 111
Please try with code below
var max = Math.max(numbers); ===> var max = Math.max(...numbers);
Upvotes: 0