是时候开启新的篇章了,积累下算法,可能很多都不实用,但有趣就行。
现在前后端分离了,很多数据上的问题,前端尽量不用处理,因为避免响应时间过长,反而影响了用户的体验,所以在算法上来讲,前端一般来说,用不上很多算法,但是,算法其实很锻炼人的思维,就算用不上,也会潜移默化地提升你的编码能力。
废话不多说了,趁着工作空余时间,立马上代码,给大家快乐,快乐。
function run(x, y){ // 杨辉三角特性
if(x == 1) return 1; // 头1
else if(x == y) return 1; // 尾1
else return (run(x-1, y-1) + run(x, y-1)); // 其他值是上一行相邻两数之和
}
let x = 1, y = 1; // 初始化 第一行第一列开始
setInterval(() => {
let text = ''; // 一行打印文本
if(x > y){
x = 1; // 换行
y += 1;
}
for(; x < y+1; x++){ // for循环拼接一行文本
if(x != 1){ // 间隔(空格)符
text += '\0';
}
text += run(x, y);
}
console.log(text);
}, 1000);
上面代码可以直接copy至控台输出,不过不要停留得太久,打印到第n行的时候,会很卡呦,所以你可以往里面加点判断,如果y>=n(执行行数)了,就清除定时器,就行了(别忘记给定时器赋个值哦),下面就是我运行的效果图。
是不是很有趣呢,小心浏览器崩溃哦!
如果你喜欢我的这个系列的话,我会很开心的,后续我会陆陆续续地找一些更有趣的js算法,来供大家娱乐娱乐。