ps:纯属练习逻辑,项目开发中实际用处不大,老鸟飘过。
题目1:求一个数组的最大ji数和最小偶数,并返回他们的和,如果一个数不存在则返回null。
方法1:
function evenOdd(arr){
var even=[],// 偶数
odd=[];//基数
for(var i=0;i<arr.length;i++)
if(arr[i]%2==0){
even.push(arr[i]);
}else{
odd.push(arr[i]);
}
if(even.length==0||odd.length==0){
console.log(‘null‘);
return null;
}else{
even.sort(function(a,b){
return a-b;
});
odd.sort(function(a,b){
return a-b;
});
}
var maxOdd = odd[odd.length-1];
var minEven = even[0];
console.log(‘最大基数:‘+maxOdd);
console.log(‘最小偶数:‘+minEven);
console.log(‘最大基数和最小偶数之和为:‘+(maxOdd+minEven));
}
evenOdd([])
方法2:
function maxOddMinEven(arguments){
var odd = [],
even = [];
for(var i = 0; i < arguments.length; i++){
if(parseInt(arguments[i]) == arguments[i]){ //如果是整数
if(arguments[i] % 2) {
odd.push(arguments[i]);
}else{
even.push(arguments[i])
}
}
}
odd.sort(function(a,b){return a>b?1:-1}
); //升序排序
even.sort(function(a,b){return a<b?1:-1}); //降序排序
console.log(odd[0],even[0]);
if(odd && even){
return odd[0] + even[0];
}else{
return null;
}
}
console.log(maxOddMinEven([1,2,3,4,5,6,7,8,9]))
题目2:字符串逆序排列
function reverseStr(str){
var str1=str.split(‘‘).reverse().join(‘‘);
console.log(str1);
}
reverseStr(‘1 ab cd‘);
题目三:数组中第二大的数
思路:
function secondMax(arr){
arr.sort(function(a,b){
return a-b;
});
var len=arr.length,
last=arr[len-1];
for(var i=len-2;i>=0;i--){
console.log(arr[i])
if(arr[i]!=last){
console.log(‘第二大的数字为:‘+arr[i]);
return arr[i];
}
}
}
secondMax([9,0,99,100])
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-07 07:04:15