js写一个方法,求一个数组中的最大奇数和最小偶数,并求他们的和,如果一个数不存在则返回null。
程序员文章站
2024-03-15 22:52:27
...
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
function fun(arr) {
var odd = null, //odd是存放最大奇数的变量
even = null; //even是存放最小偶数的变量
//下面对数组元素进行循环判断
for(var n = 0; n < arr.length; n++) {
//如果元素模2不为0,则是奇数
if(arr[n] % 2 != 0) {
//如果odd变量是null,或者当前元素大于odd
//则给odd变量值替换为当前元素
if(odd == null || arr[n] > odd) {
odd = arr[n];
}
}
//同理,
//如果元素模2为0,则是偶数
if(arr[n] % 2 == 0) {
//如果even变量是null,或者当前元素小于even
//则给even变量值替换为当前元素
if(even == null || arr[n] < even) {
even = arr[n];
}
}
}
//最后返回结果
if(odd != null && even != null) {
return{
"maxodd":odd,
"mineven":even,
"sum" :odd + even
}
}
else if(odd == null && even != null){
return{
"maxodd":null,
"mineven":even,
"sum" : even
}
}
else if(odd != null && even == null){
return{
"maxodd":odd,
"mineven":null,
"sum" :odd + even
}
}
else {
return null;
}
}
//调用函数
var arr = [1,3,9,11];
var result = fun(arr);
alert("最大奇数为:"+result.maxodd+"\n"+"最小偶数:"+ result.mineven+"\n"+"它们的和为:"+result.sum);
</script>
</html>
上一篇: 给定一个数组,求如果排序之后,相邻两数的的最大差值(Java实现)
下一篇: 算法复杂度分析