juan field
asked on
How can i make my code return a zero when there are no numbers in the array?
function getLargestNumberAmongMixed Elements(a rr) {
var result = -1;
if(arr.length === 0){
result = result + 1;
}
for(var i = 0; i < arr.length; i++){
if(arr[i] > result ){
result = arr[i];
}if(arr[i] === isNaN){
result = result + 1;
}
}
return result;
}
console.log(getLargestNumb erAmongMix edElements ([3, 'word', 5, 'up', 3, 1]));
var result = -1;
if(arr.length === 0){
result = result + 1;
}
for(var i = 0; i < arr.length; i++){
if(arr[i] > result ){
result = arr[i];
}if(arr[i] === isNaN){
result = result + 1;
}
}
return result;
}
console.log(getLargestNumb
... just initialise result to 0 like this
function getLargestNumberAmongMixedElements(arr) {
// Default result to 0
// If array is empty loop won't run and default will return
var result = 0;
for(var i = 0; i < arr.length; i++){
if(arr[i] > result ){
result = arr[i];
}if(arr[i] === isNaN){
result = result + 1;
}
}
return result;
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Hi Juan,
Please try this..
Hope it helps!
Please try this..
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
function getMaximumValue() {
var arrOfValues = [1, 21, 3, 'Pawan', 4, 'Sumit'];
var maxValueDisplayControl = document.getElementById('maxValue');
var maxValue = 0;
for (var i = 0; i < arrOfValues.length; i++) {
var valueToCompare = arrOfValues[i];
if (parseInt(valueToCompare) !== NaN) {
if (valueToCompare > maxValue) {
maxValue = valueToCompare
}
}
}
maxValueDisplayControl.innerText = "Maximum value is " + maxValue;
}
window.onload = function () {
getMaximumValue();
};
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<span id="maxValue"></span>
</div>
</form>
</body>
</html>
Hope it helps!
Having re-read the requirement, I believe reduce() should be considered for this
<script>
function getLargestNumberAmongMixedElements(arr) {
var currentMax = 0;
var result = arr.reduce(function(currentMax, b) {
var val = isNaN(b) ? 0 : b;
return Math.max(currentMax, val);
}, 0);
return result;
}
// Test empty case
var data = [];
console.log(getLargestNumberAmongMixedElements(data));
// Test mixed case
var data = [3, 'word', 5, 'up', 3, 1];
console.log(getLargestNumberAmongMixedElements(data));
</script>
ASKER
Gracias very much
Open in new window
Demo here: https://jsfiddle.net/zephyr_hex/f88p68a9/
Open in new window