javascript的簡單邏輯題目
阿新 • • 發佈:2018-12-31
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])
判斷迴文:
//判斷迴文 abccba
function checkHw(num){
var Xnum=num.toString();
for(var i=0;len=Xnum.length,i<(len-1)/2;i++){
if(Xnum.charAt(i)==Xnum.charAt(len-1-i)){
return num+'是迴文';
}else{
return num+'不是迴文';
}
}
}
console.log( checkHw('abccba'))