1、写一个函数,返回从min到max之间的 随机整数,包括min不包括max
function random(min,max) {
return Math.floor(Math.random()*(max - min) + min);
}
2、写一个函数,返回从min都max之间的 随机整数,包括min包括max
function random(min,max) {
return Math.floor(Math.random()*(max - min +1) + min);
}
3、写一个函数,生成一个长度为 n 的随机字符串,字符串字符的取值范围包括0到9,a到 z,A到Z。
function getRandStr(len){
//补全函数
}
var str = getRandStr(10); // 0a3iJiRZap
function getRandStr(len){
var dict = [0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
var sub ="";
for(i = 0; i < len; i++){
var x = Math.floor(Math.random()*62 );
sub += dict[x];
}
return sub;
}
getRandStr(10); // 0a3iJiRZap
4、写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function getRandIP(){
//补全
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
//写一个函数,生成一个随机 IP 地址,一个合法的 IP 地址为 0.0.0.0~255.255.255.255
function getRandIP(){
var arr = [];
for(i = 0; i < 4; i++){
arr.push(Math.floor(Math.random()*256));
}
return arr.join(".");
}
var ip = getRandIP()
console.log(ip) // 10.234.121.45
- 写一个函数,生成一个随机颜色字符串,合法的颜色为#000000~ #ffffff.
function getRandColor(){
var dict = "0123456789abcdef"
var y = "";
for(i = 0;i < 6; i++){
var x = Math.floor(Math.random()*16);
y += dict[x];
}
return y;
}
var color = getRandColor();
console.log(color); // #3e2f1b
数组任务
- 数组方法里push、pop、shift、unshift、join、splice分别是什么作用?用 splice函数分别实现push、pop、shift、unshift方法
push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。
pop()方法从数组末尾移除最后一项,减少数组length值,然后返回移除的项。
shift()方法移除数组中的第一个项并返回该项,同时将数组长度减1.
unshift()方法能在数组添加任意个项并返回新数组的长度。
join()方法只接受一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串。
splice()
删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。例如,splice(0,2)会删除数组中的前两项。
插入:可以向指定的位置插入任意数量的项, 只需提供3个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五,以致任意多个项。例如,splice(2,0,"red","green")会从当前数组的位置2开始插入字符串"red"和"green".
替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。例如,splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串"red"和"green"。
splice()方法始终都会返回一个数组,该数组包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组) - 写一个函数,操作数组,数组中的每一项变为原来的平方,在原数组上操作
function squareArr(arr){
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
function squareArr(arr){
var result;
for(i = 0; i < arr.length; i++){
result = arr[i]*arr[i];
arr.splice(i,1,result);
}
return arr;
}
var arr = [2, 4, 6]
squareArr(arr)
console.log(arr) // [4, 16, 36]
- 写一个函数,操作数组,返回一个新数组,新数组中只包含正数,原数组不变
function filterPositive(arr){
}
var arr = [3, -1, 2, '饥人谷', true]
var newArr = filterPositive(arr)
console.log(newArr) //[3, 2]
console.log(arr) //[3, -1, 2, '饥人谷', true]
function filterPositive(arr){
var newArr1 = [];
for(i = 0;i < arr.length; i++){
if(arr[i] > 0&& arr[i]!== true){
newArr1.push(arr[i]);
}
}
return newArr1;
}
var arr = [3, -1, 2, '饥人谷', true]
var newArr = filterPositive(arr);
console.log(newArr);//[3, 2]
console.log(arr); //[3, -1, 2, '饥人谷', true]
Date 任务
- 写一个函数getChIntv,获取从当前时间到指定日期的间隔时间
var str = getChIntv("2017-02-08");
console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
function getChIntv(str1){
var time = Math.abs(Date.parse(str1)-Date.now());
var day;
var hour;
var sec;
var min;
day = Math.floor(time/(1000*24*60*60));
hour = Math.floor(time/(1000*60*60)%24);
min = Math.floor(time/(1000*60)%60);
sec = Math.floor(time/(1000)%60);
return "距"+str1+"还有"+day+"天"+hour+"小时"+min+"分"+sec+"秒"
}
var str = getChIntv("2017-02-08");
console.log(str); // 距除夕还有 20 天 15 小时 20 分 10 秒
- 把hh-mm-dd格式数字日期改成中文日期
var str = getChsDate('2015-01-08');
console.log(str); // 二零一五年一月八日
- 写一个函数,参数为时间对象毫秒数的字符串格式,返回值为字符串。假设参数为时间对象毫秒数t,根据t的时间分别返回如下字符串:
刚刚( t 距当前时间不到1分钟时间间隔)
3分钟前 (t距当前时间大于等于1分钟,小于1小时)
8小时前 (t 距离当前时间大于等于1小时,小于24小时)
3天前 (t 距离当
前时间大于等于24小时,小于30天)
2个月前 (t 距离当前时间大于等于30天小于12个月)
8年前 (t 距离当前时间大于等于12个月)
function friendlyDate(time){
}
var str = friendlyDate( '1484286699422' ) // 1分钟前
var str2 = friendlyDate('1483941245793') //4天前