搜集前段面试题,自己尝试做解答!

题目1,有一个数组[123,454,1231,567,897,12] 请取出这个数组中最大的三个数!

var arr=[]	//存储取出的数
var aa=[1253,123,54,65,1233]
function getMax(arr1,arr2,length){
	for(var i=0;i<length;i++){
		var step1=Math.max.apply(null,arr2)//核心!使用apply把数组化为参数传入
		arr1.push(step1)
		var step2=arr2.indexOf(parseFloat(step1))
		arr2.splice(step2,1)
	}
}
getMax(arr,aa,3)//第一个参数存储结果,第二个参数处理的数据,第三个参数限制条件
alert(arr)

题目2,判断一个字符串是否满足YYYY-MM-DD日期格式!(日期保证绝对有效)

解题思路!

1、判断闰年

普通闰年:普通情况求闰年只需除以4可除尽即可 年/4余数为0
世纪闰年:如果是100的倍数但不是400的倍数,那就不是闰年了,即末两位都是零的整除400才行 

return (year%4==0&&year%100!=0||year%400==0)

2、正则判断/^\d{4}-\d{2}-\d{2}$/

3、判断月份天数,一三五七八十腊31天永不差!四六九十一30天,只有二月28,闰年二月29天

if([01,03,05,07,08,10,12].indexOf(month)!=-1&&day!=31){
    return false
}
if([4,6,9,11].indexOf(month)!=-1&&day!=30){
    return false
}
if(month=02&&闰&&day!=29){
    return false
}
if(month=02&&!闰&&day!=28){
    return false
}

完整代码!

var date='2013-12-34'
function dateStyle(date){
    var result =true//最终返回结果
    var reg=/^\d{4}-\d{2}-\d{2}$/
    var arr=date.split('-')
    if(!reg.test(date)){
        return false
    }else{var leapYear=(arr[0]%4==0&&arr[1]%100!=0||arr[2]%400==0)}

    if([01,03,05,07,08,10,12].indexOf(arr[1])!=-1&&arr[2]!=31||arr[1]>12){
        return false
    }
    if([4,6,9,11].indexOf(arr[1])!=-1&&arr[2]!=30)||arr[1]>12{
        return false
    }
    if(arr[1]=02&&leapYear&&arr[2]!=29){
        return false
    }
    if(arr[1]=02&&!leapYear&&arr[2]!=28){
        return false
    }
    return true
}
dateStyle(date)
    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值