为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BoBoBoBoBoBo007 2017-04-14 10:55:14
用js怎么写,天呐就是写不出来,逻辑好乱
查看完整描述

2 回答

?
Cybs

TA贡献1条经验 获得超1个赞

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]);


查看完整回答
1 反对 回复 2017-04-14
?
慕粉1603412396

TA贡献4条经验 获得超1个赞

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]));



查看完整回答
反对 回复 2017-04-14
  • 2 回答
  • 0 关注
  • 2518 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信