function getInfo(year, month) {
var d = new Date()
// what day is first day
d.setFullYear(year, month-1, 1)
var w1 = d.getDay()
if (w1 == 0) w1 = 7
// total day of month
d.setFullYear(year, month, 0)
var dd = d.getDate()
// first Monday
if (w1 != 1) d1 = 7 - w1 + 2
else d1 = 1
week_count = Math.ceil((dd-d1+1)/7)
document.write(year + "年" + month + "月有" + week_count +"周<br/>")
for (var i = 0 i < week_count i++) {
var monday = d1+i*7
var sunday = monday + 6
var from = year+"/"+month+"/"+monday
var to
if (sunday <= dd) {
to = year+"/"+month+"/"+sunday
} else {
d.setFullYear(year, month-1, sunday)
to = d.getFullYear()+"/"+(d.getMonth()+1)+"/"+d.getDate()
}
document.write("第"+(i+1)+"周 从" + from + " 到 " + to + "<br/>")
}
}
getInfo(2013,12)
</script>
首先定义一个数组
const arr = [1,2,3,4,5,6]
第一种:for循环
for (let i = 0i<arr.lengthi++){
console.log(arr[i])
}
for(j=0,len=arr.lengthj<lenj++){}//这种方法基本上是所有循环遍历方法中性能最高的一种
第二种 for of (需要ES6支持) 性能要好于forin,但仍然比不上普通for循环
for (let value of arr){
console.log(value)
}
第三种 for in 它的效率是最低的
for (let i in arr){
console.log(arr[i])
}
第四种 foreach() 实际上性能比普通for循环弱
1、箭头函数写法
arr.forEach(value =>{
console.log(value)
})
2、普通函数写法
arr.forEach(function(value){
console.log(value)
})
第五种 entries()
for (let [index, value] of arr.entries()) {
console.log(value)
}
第六种 keys()
for (let inx of arr.keys()){
console.log(arr[inx])
}
第七种 reduce()
1、箭头函数
arr.reduce((pre,cur)=>{
console.log(cur)
})
2、普通函数
arr.reduce(function(pre,cur){
console.log(cur)
})
第八种 map() 但实际效率还比不上foreach
1、箭头函数
arr.map(value=>{
console.log(value)
})
2、普通函数
arr.map(function(value){
console.log(value)
})
第九种 values()
for (let value of arr.values()){
console.log(value)
}