2017-04-30 32 views
-3

我正试图编写一个简单的程序来计算数组中最大的偶数。使用10个元素的数组。为什么我的程序无法正常工作?

function biggestEven(array) {  
 
    var numberOfNumbers = array.length; 
 
    var biggestYet = 0; 
 
    var theNumber; 
 
    for (var i = 0; i < numberOfNumbers; i++) { 
 
    if(array[i] % 2 = 0) { 
 
     biggestYet = array[i]; 
 
    } 
 
    if(array[i] % 2 = 0 && array[i] > biggestYet) { 
 
     theNumber = biggestYet; 
 
    } 
 
    } 
 
    return theNumber; 
 
} 
 
var myArray = []; 
 
for (var i = 0; i < 10; i++) {  
 
    myArray[i] = window.prompt("Enter number " + (i+1) + "of 10:"); 
 
} 
 
console.log("The biggest even number is: " + biggestEven(myArray));

请帮我卡住了。该计划不会导致铬。

回答

2

你给一个值,而不是比较:

if(array[i] % 2 = 0) { 
    biggestYet = array[i]; 
} 

,你也正在返回的错误的元素:

function biggestEven(array) { 
 
    var numberOfNumbers = array.length; 
 
    var biggestYet = 0; 
 
    var theNumber = 0; 
 
    
 
    for (var i = 0; i < array.length; i++) { 
 
    if (array[i] % 2 === 0) { 
 
     biggestYet = array[i]; 
 
    } 
 
    
 
    if (array[i] % 2 === 0 && array[i] > biggestYet) { 
 
     theNumber = biggestYet; 
 
    } 
 
    } 
 
    return biggestYet; 
 
} 
 

 
var myArray = []; 
 

 
for (var i = 0; i < 2; i++) {  
 
    myArray[i] = window.prompt("Enter number " + (i+1) + " of 10:"); 
 
} 
 

 
console.log("The biggest even number is: " + biggestEven(myArray));

这可能帮助:

console.log(Math.max(...[267, 306, 108, 307].filter(function(value) { return value % 2 === 0 })));

+1

你是中途。请说明出了什么问题以及如何解决问题 –

0

您需要更改

if(array[i] % 2 = 0) { 
    biggestYet = array[i]; 
} 

if(array[i] % 2 == 0) { 
    biggestYet = array[i]; 
} 
0

这里是你的问题的解决方案

function biggestEven(array) { 
 
    \t return Math.max(...array.filter(function(num){ 
 
     \t \t return num%2==0; 
 
    \t \t })); 
 
    } 
 
    var myArray = [1,2,36,45,51,16,7]; 
 
    alert(biggestEven(myArray));

相关问题