作者: 守候
https://segmentfault.com/a/1190000012499256
1.前言
开发项目和出没社区有一段时间了,会遇上一些比较有印象业务需求。这些业务需求,可能是自己开发项目遇上的,可能是在社区看到的业务需求,或者其他情况接触到的需求,但是这些业务需求的实现逻辑都值得一写。因为这些业务逻辑可以当做练习题一样,可以给大家练手。也希望大家从这些需求实现的逻辑里面可以能到javascript的相关知识,当然如果大家觉得代码需要怎样优化,或者有什么建议,更好的实现方案,觉得我哪里写错了,或者有觉得可以分享的需求,可以在评论提下!
2.月份坐标轴
这个需求是,看下图就懂了
实现方式其实很简单,我在代码打上注释,大家就懂了!
可能大家看着会懵,直接看下面的循环图就懂了
3.数值区间
如下图,就是几个数值区间,而且会有一个最小值和最大值
测试用例
运行结果
4.数组对比
这个基于我回答过的一个问题,现在化用,改写一下
JavaScript如何对比两个数组?数组B根据数组A来做出增删? (不用jquery,原生js)
具体问题是这样的:
arryA
arryB
1、如果arryA中有a,arryB中没有,那么在arryB中增加一个key值为a的boj,且其他属性值可均为'0';如下:
2、如果arryA中有a,arryB中也有key值为a的obj,那么arryB则不改变,并且该obj里的其他属性和属性值均不变;
3、如果在arryA中删除了a,那么arryB中key值为a的obj整个删掉。
测试
5.学院获奖
统计学生申请优秀毕业生,并且符合条件的(成绩优秀,拿过奖学金,获得过三好学生)。前提是要申请
大概的流程图就是像下面这样!
我在代码上写上注释,相信不难理解了
6.数组连续的最大长度
这个也是出于我回答过的问题:如下
7.答题连对数
这个和上面的代码基本一样,只是判断条件毫厘之差,直接贴,大家看就好
8.命名方式转换
比如驼峰命名方式转'-'命名方式。
比如'-'命名方式转驼峰命名方式
9.格式化字符
这个最常见的就是在金额方面的显示需求上,比如后台返回10000。前端要显示成10,000或者其他格式等!
10.对象合并,并且记录异常数据
这个需求,可能大家有点懵。下面实例分析比如有两个都地方记录了我的信息
现在要合并我的信息,并且记录可能有异常的信息。比如上面的name属性,在两个对象都有,而且两个对象的值不一样,那么就不知道到底是info1中的name属性是正确的,还是info2中的name属性是正确的。所以,就得把name这个属性记录起来,方便以后核对name这个属性。
如下图
下面,一步一步来,先不管3721,直接合并属性
然后先准备一个字段,记录哪些异常信息
最后检查对象,判断哪些信息有异常
11.筛选标签
如下图,在下面渲染这个标签
大家可能第一可能觉得压根没难度,就是一个对象数组:比如
但是这样的数据,显然是要经过处理生成的,因为不可能这样发送请求
发送过去的参数应该是这样的
怎么进行数据的处理呢,其实很简单,代码不打注释,我想都看得懂
有了这些数据,渲染到页面这个就简单了!
12.导入excel内容
就是excel上这样的内容
转成下面的数据
目录如下
下面开始写代码,我们利用node.js来写
然后命令行执行该js
然后就发现多了一个test.js文件
excel的数据就这样导入成js的一个数组了,只要引入这个数组,就可以正常的使用了!
13.随机循环
当时接到的业务是实际显示客户的信息,感觉有点像音乐播放器的随机循环。
要求:
一个提示列表里面,提示的信息每隔500ms随机展示。
同一轮循环里面,一个提示信息只能展示一次。
列表的提示信息全部展示完了,进行下一轮展示。
这个逻辑没什么,直接在代码打上注释,我想大家就明白了!
14.小结
好了,关于我收集到的一些业务需求逻辑,以及实现的方式,就说到这里了!接触到的也无需求逻辑很多,但是值得写的,可以当做练习题的,就记录到这里了。我上面代码实现可能会有点粗糙,大家有更好的实现方案,欢迎建议一下。如果大家有什么可以当做练习题的需求,可以提下。让大家有多些练习题可以尝试下,学习下!
●编号711,输入编号直达本文
●输入m获取文章目录
推荐↓↓↓
Web开发
更多推荐《18个技术类微信公众号》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。
领取专属 10元无门槛券
私享最新 技术干货