最近闲来没事,看到一些有意思的题目,决定整理分享一下~
1.用最酷炫的方法实现8位数,不足位数前面补0
惭愧的是,我看到这个题目第一反应用if else,并且在接下来几分钟都没有想到令自己觉得酷炫的方法来实现。直到~~听到一位大神的一句提示,想到了下面的方法
function addZero(num) {
return ((num+100000000)+'').substring(1);
}
alert(addZero(1))
2.以下代码会不会报错,如果报错在哪里报错,如何修改?
var a = 1;
a.b = function(){alert(1)}
a.b()
第一反应当然是会报错,因为a的数据类型是Number,而a.b的写法是json才能这么写的,由于不能改变a的数据格式,所以只能往原型链的方向想,只需要把第二行改成Number.prototype.b=function(){alert(1)},相当于给Number上定义了一个b方法,所有的数字就都可以调用b方法了
3.好几个数字,如5,6,7,如何给每次之间加逗号拼接起来
一行就搞定
var sub=[].join.call('567',',');
4.数组去重
数组去重的方法有很多种,有的简单有的复杂,可以创建一个新数组,遍历原来的数组一个一个数据的取出来,也可以将原数组变成json的key值,利用json的key值唯一去重,再取回来组成新数组,现在介绍一种利用es6中的set数据类型去重的方法
function dedupe(array) {
return Array.from(new Set(array));
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]
4.随意给定一个数字,常见一个数组来做map
方法一:
new Array(3).fill(1).map((v,index)=>index)
方法二:
Array.from({length:3}).map(v=>3)
方法三:
Array.from(new Array(4)).map(v=>3)
未完待续