猿问

求一个数组中的最大奇数和最小偶数,并返回他们的和,如果一个数不存在则返回null

用js怎么写,天呐就是写不出来,逻辑好乱

BoBoBoBoBoBo007
浏览 2519回答 2
2回答

Cybs

function find(arr) { // 不存在,返回null if (!arr || arr.length == 0) { return null; } // 奇数     var odd;     // 偶数     var even;     // 遍历查找     for (var i = 0; i < arr.length; i++) {         var num = arr[i];         // 奇数         if (num % 2 == 1) {          // 未初始化或者比前值大             if (typeof(odd) === 'undefined' || num > odd) {                 odd = num;             }         }         // 偶数         if (num % 2 == 0) {          // 未初始化或者比前值小             if (typeof(even) === 'undefined' || num < even) {                 even = num;             }         }     }     // 不存在,返回null     if (typeof(odd) == 'undefined' || typeof(even) == 'undefined') {      return null;     }     return odd + even; } // 传入数组 find([1, 2, 3, 4, 5, 6]);

慕粉1603412396

var a = [1,2,3,4,5,6,7,8,9]; var arr = new Array(); var old = new Array(); for(var i =0 ; i<a.length;i++){ if(a[i]%2==0){ arr.push(a[i]); }else{ old.push(a[i]); } } var temp; for(i=0; i<arr.length;i++){    for(var j=i+1;j<arr.length;j++){          if(arr[i]>arr[j]){              temp=arr[i];              arr[i]=arr[j];              arr[j]=temp;            }      } } for(i=0; i<old.length;i++){    for(j=i+1;j<old.length;j++){          if(old[i]>old[j]){              temp=old[i];              old[i]=old[j];              old[j]=temp;            }      } } document.write("数组中的最大奇数是:"+old[old.length-1]); document.write("数组中的最大偶数是:"+arr[arr.length-1]); document.write("它们的和为:"+(arr[arr.length-1]+old[old.length-1]));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答