目录
一、题目
1、获取 2017-06-10 格式的日期
function formatDate(dt){
if(!dt){
dt=new Date()
}
var year=dt.getFullYear();
var month=dt.getMonth()+1;
var date=dt.getDate();
if(month<10){
//强制类型转换
month='0'+month
}
if(date<10){
//强制类型转换
date='0'+date;
}
//强制类型转换
return year+'-'+month+'-'+date
}
var dt=new Date();
var formatDate=formatDate(dt);
console.log(formatDate);
2、获取随机数,要求是长度一致的字符串格式
var random =Math.random();
var random=random+'0000000000'; //后面加上10个0
var random=random.slice(0.10);
console.log(random)
3、写一个能遍历对象和数组的通用forEach函数
function forEach(obj,fn){
var key
if(obj instanceof Array){
//准确判断是不是数组
obj.forEach(function (item,index){
fn(index,item)
})
}else{
//不是数组就是对象
for(key in obj){
fn(key,obj[key])
}
}
}
var arr =[1,2,3]
//注意,这里的参数顺序换了,为了和对象的遍历格式一致
forEach(arr,function (index,item){
console.log(index,item)
});
var obj={x:100.,y:200}
forEach(obj,function(key,value){
if(obj.hasOwnProperty(key)){
console.log(key,value)
}
})
二、知识点
2.1 日期
Date.now(); //获取当前时间的毫秒数 1970年算起
var dt=new Date();
dt.getTime(); //获取毫秒数
dt.getFullYear(); //年
dt.getMonth(); //月 (0-11)
dt.getDate(); //日 (0-31)
dt.getHours(); //小时(0-23)
dt.getMinutes(); //分钟 (0-59)
dt.getSeconds(); //秒 (0-59)
2.2 Math
Math.random() //0-1
2.3 数组API
- forEach() 遍历所有的元素
var arr=[1,2,3];
arr.forEach(function (item,index){
//遍历数组的所有元素
console.log(index,item);
});
- every 判断是否所有元素符合条件
var arr=[1,2,3];
var result =arr.every(function (item,index){
//用来判断所有的数组元素,都满足一个条件
if(item<4){
return true
}
});
console.log(result); //true
- some 判断是否有至少一个元素符合条件
var arr=[1,2,3];
var result =arr.some(function (item,index){
//用来判断所有的数组元素,只要有一个满足条件即可
if(item<2){
return true
}
});
console.log(result); //true
- sort 排序
var arr=[1,4,2,3,5];
var arr2=arr.sort(function (a,b){
//从小到大排序
return a-b;
//从大到小排序
//return b-a
});
console.log(arr2); //[1, 2, 3, 4, 5]
- map 对元素重新组装,生成新数组
var arr=[1,2,3,4];
var arr2=arr.map(function (item,index){
//将元素重新组装,并返回
return '<b>'+item+'</b>'
})
console.log(arr2);
// ["<b>1</b>", "<b>2</b>", "<b>3</b>", "<b>4</b>"]
- filter 过滤符合条件的元素
var arr=[1,2,3];
var arr2=arr.filter(function(item,index){
//通过某个条件过滤数组
if(item>=2){
return true
}
});
console.log(arr2); //[2, 3]
2.4 对象API
- for...in 语句用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
var obj={
x:100,
y:200,
z:300
};
var key;
for(key in obj){//key 指 x,y,z
//注意这里的hasOwnProperty 判断属性是否为原生的属性
if(obj.hasOwnProperty(key)){
console.log(key,obj[key])
}
}