Math
1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max
function ranDom(min,max){
return min+floor(random()*(max-min))
}
2、写一个函数,返回从min都max之间的 随机整数,包括min包括max
function ranDom(min,max){
return min+floor(random()*(max-min+1))
}
3、写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function ranDom(min,max){
return min+floor(random()*(max-min))
}
function getRandStr(len){
var dict = '0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
var str = ""
for(var i = 0;i<len; i++){
str+=dict[random(0,62)]
}
return str
}
var str = getRandStr(10); // 0a3iJiRZap
4、写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为
function ranDom(min,max){
return min+floor(random()*(max-min))
}
0.0.0.0~255.255.255.255
function getRandIP(){
var arr = []
for(var i = 0;i < 4;i ++){
arr.push(random(0,256))
}
return arr.join('.')
var ip = getRandIP()
console.log(ip) // 10.234.121.45
5、写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff
function ranDom(min,max){
return min+floor(random()*(max-min))
}
function getRandColor(){
dict = '0123456789abcdef'
var str = ''
for(var i = 0;i<6;i ++){
str +=dict[random(0,16)]
}
return "#"+str
var color = getRandColor()
console.log(color) // #3e2f1b
数组
1、数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
-
push() 方法可向数组末尾添加一个或多个元素,并返回新的长度。
var arr = [1,2,3] arr.push(4,5,6) console.log(arr) // array [1,2,3,4,5,6]
-
pop()用于删除并返回数组最后一个元素,原数组长度减一,如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
-
shift()用于删除数组第一个元素并返回被删除元素,改变原数组。如果数组为空数组则返回undefined。
-
unshift()方法可向数组的开头添加一个或更多元素,并返回新的长度。
-
join() 方法用于把数组中的所有元素放入一个字符串,元素是通过指定的分隔符进行分隔的。
-
splice(起始索引,删除元素,添加元素)方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
2、写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
var arr = [2, 4, 6]
function squareArr(arr){
for(var i = 0;i<arr.length;I++){
arr[i] = arr[i] * arr{i]
}
return arr
squareArr(arr)
console.log(arr) // [4, 16, 36]
3、写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
var arr = [3, -1, 2, '饥人谷', true]
function filterPositive(arr){
for(var i =0; i<arr.length; i ++){
if(typeof arr[i] ==="number" && arr[i] > 0) {
newArr.push(arr[i])
}
return newArr
}
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1, 2, '饥人谷', true]
Date日期函数
1. 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间.
答:
<script>
var newYear = new Date('2017-2-08');
var nowDay = new Date();
function getInterval(start,end) {
var days = 1000*60*60*24;
var result = end.getTime() - start.getTime();
var result2 = Math.ceil(result/days);
return result2;
}
var demo = getInterval(nowDay,newYear);
console.log(demo);
</script>
2. 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间.
答:写一个函数getChIntv,获取从当前时间到指定日期的间隔时间.
<script>
var newYear = new Date('2017-11-01');
var nowDay = new Date();
function getInterval(start,end) {
var days = 1000*60*60*24;
var hours = 1000*60*60;
var minutes = 1000*60;
var seconds = 1000;
var result = end.getTime() - start.getTime();
var getDay = Math.floor(result/days);
var getHours = Math.floor((result/hours)-(getDay*24));
var getMinutes = Math.floor((result - (getDay*days)- (getHours*hours))/minutes);
var getseconds = Math.floor((result - (getDay*days)-(getHours*hours)- (getMinutes*minutes))/seconds);
var finalResult = "距离除夕还有:"+getDay+"天"+getHours+"小时"+getMinutes +"分钟"+getseconds+"秒";
return finalResult;
}
var demo = getInterval(nowDay,newYear);
console.log(demo);
</script>
3.把hh-mm-dd格式数字日期改成中文日期.
答:这道题,老师请酌情批改,因为我的月前面不能加0,加了就解析不了月份.
<script>
var str='2015-8-30';
var dict = ["零","一","二","三","四","五","六","七","八","九","十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","二十一","二十二","二十三","二十四","二十五","二十六","二十七","二十八","二十九","三十","三十一"];
function getChsDate(str){
var newStr = str.split('-');
var year=newStr[0];
var month=newStr[1];
var day=newStr[2];
var result_year = year.split('');
var result_month = dict[month.split()[0]].split();
var resutl_day = dict[day.split()[0]].split();
var result = result_month.concat(resutl_day);
var year_str=[];
for(var i = 0;i<result_year.length;i++){
year_str.push(dict[result_year[i]]);
}
var final = year_str.concat(result);
final.splice(4,0,'年');
final.splice(6,0,'月');
final.splice(9,0,'日');
return final.join('');
}
var demo = getChsDate(str);
console.log(demo);
</script>
4.写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:
答:
<script>
function friendlyDate (time) {
var t = new Date().getTime();
var c = (t-time)/1000;
switch(true){
case c < 60:
console.log('刚刚');
break;
case c >=60 && c<60*60:
console.log(Math.floor(c/60)+'分钟前');
break;
case c>=3600 && c<3600*24:
console.log(Math.floor(c/3600)+"小时前");
break;
case c>=3600*24 && c<3600*24*30:
console.log(Math.floor(c/3600/24)+"天前");
break;
case c>=3600*24*30 && c<3600*24*30*12:
console.log(Math.floor(c/3600/24/30)+"月前");
break;
default:
console.log(Math.floor(c/3600/24/30/12)+"年前");
break;
}
}
var str = friendlyDate(Date.now()-1000*60);
console.log(str);
var str2 = friendlyDate('1483941245793');
console.log(str2);
</script>
网友评论