记得之前在一家上市公司面试,公司前端架构师问了我一个这样的算法问题,怎样获取1-100之间所有末位为5的数字,当时时间紧迫,我答了一个大致思路:通过for循环1-100,将每个数字转为字符串,然后通过字符串方法截取到最后一位数字,等于5时返回。那次面试也算通过了,回来后就打开VSCode把这道算法题写了下来。
我写了两种方法,思路差不多。
- 通过for循环获取每一个i
- 将i转为String
- 使用substr方法,截取到i的最后一位数字,判断,等于5时返回,这里要使用==,因为没有进行类型转换
function getFive() {
for(var i = 0; i < 100; i++) {
// 先把i转化为字符串
i = i.toString();
i.substr(-1, 1) == 5 && console.log(i)
}
return;
}
getFive()
还有另外一种方法,使用的是charAt方法,获取字符串最后一位
function getFiv() {
for(var i = 0; i < 100; i++) {
// 先把i转化为字符串
i = i.toString()
i.charAt(i.length - 1) == 5 && console.log(i);
}
return;
}
getFiv()