欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一些有意思的题目

程序员文章站 2024-03-12 20:27:44
...

最近闲来没事,看到一些有意思的题目,决定整理分享一下~

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)

未完待续