题目来源
day17:数组去重
题目描述
为 Array 对象添加一个去除重复项的方法
输入
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a', 'a', NaN]
输出
[false, true, undefined, null, NaN, 0, 1, {}, {}, 'a']
参考代码
Array.prototype.uniq = function () {
let set = new Set(this)
let arr = new Array()
for (let item of set) {
arr.push(item)
}
return arr
}
day18:数组去重
题目描述
用 JavaScript 实现斐波那契数列函数,返回第n个斐波那契数。 f(1) = 1, f(2) = 1 等
参考代码
function fibonacci(n) {
if (n <= 2) {
return n
} else {
let a = 1, b = 1
let sum = 0
for(let i = 3; i<= n; i++) {
[a,b] = [b, a+b]
/*
相当于
a =b
b = a + b
*/
}
return b
}
}
day19:时间格式化输出
题目描述
按所给的时间格式输出指定的时间
格式说明
对于 2014.09.05 13:14:20
yyyy: 年份,2014
yy: 年份,14
MM: 月份,补满两位,09
M: 月份, 9
dd: 日期,补满两位,05
d: 日期, 5
HH: 24制小时,补满两位,13
H: 24制小时,13
hh: 12制小时,补满两位,01
h: 12制小时,1
mm: 分钟,补满两位,14
m: 分钟,14
ss: 秒,补满两位,20
s: 秒,20
w: 星期,为 [‘日’, ‘一’, ‘二’, ‘三’, ‘四’, ‘五’, ‘六’] 中的某一个,本 demo 结果为 五
输入
formatDate(new Date(1409894060000), 'yyyy-MM-dd HH:mm:ss 星期w')
输出
2014-09-05 13:14:20 星期五
参考代码
function formatDate(srcDate, form) {
let obj = {
yyyy:srcDate.getFullYear(),
yy:(""+ srcDate.getFullYear()).slice(-2),
MM:("0"+ (srcDate.getMonth()+1)).slice(-2),
M:srcDate.getMonth()+1,
dd:("0" + srcDate.getDate()).slice(-2),
d:srcDate.getDate(),
HH:("0" + srcDate.getHours()).slice(-2),
H:srcDate.getHours(),
hh:("0"+srcDate.getHours() % 12).slice(-2),
h:srcDate.getHours() % 12,
mm:("0" + srcDate.getMinutes()).slice(-2),
m:srcDate.getMinutes(),
ss:("0" + srcDate.getSeconds()).slice(-2),
s:srcDate.getSeconds(),
w:['日', '一', '二', '三', '四', '五', '六'][srcDate.getDay()]
}
for(let i in obj) {
form = form.replace(i, obj[i])
}
return form
}