写在前面的话
好久没写文章了,今天借个机会写一篇,顺便吐槽一下遇到的糟心事
先说一下背景吧。最近做了一个产品需求,需求内需要有一些随机轮播的文案,文案大部分是固定的,只有一小部分需要随机生成即可,起初只配置了5条文案,后来领导看见了说5条太少了,想增加几条,然后我教产品该如何配置,当时产品也答应了。
结果到了晚上7点半了,产品来跟我说,一条一条配置太费时间了(巴拉巴拉一顿说,意思好像是他的时间比我的宝贵的样子),想让我写段代码随机生成,我想了想,手写50条跟我写段代码逻辑的时间差不了多少,然后我就跟他说了一下,拒绝了;没想到他直接去找我领导了,然后我领导又找我了,我领导说配几百条(ps:注意数量变化:几条->50->几百)太废时间了给我提了个工单解决,然后跟我领导battle了一顿,最后迫于压力,还是将其写出来了
逻辑
其实就是一段简单的生成随机数的代码
- 随机生成四位数的手机尾号
- 从5个固定的金额内随机取出来一个即可
- 按照固定的模板拼接即可
- 生成一个数组,循环遍历
1. 生成从[n,m]的随机数
function getRandomNumber(min, max) {
return Math.floor(Math.random() * (max-min)) + min
}
2. 调用函数分别生成phone和获得下标
a)生成phone
const randomPhone = getRandomNumber(1000, 9999);
b)获得下标
const prices = [50, 150, 300, 500, 1000];
const randomPrice = prices[getRandomNumber(0, 5)];
3. 按照特定模版拼接
const str = `*${randomPhone}用户刚砍${randomPrice}元`;
4. 创建一个length为200的数组,循环遍历,需要用到前三步
function getStrs(count) {
return new Array(count).fill(0).map((item) => {
const randomPhone = getRandomNumber(1000, 9999);
const prices = [50, 150, 300, 500, 1000];
const randomPrice = prices[getRandomNumber(0, 5)];
return `*${randomPhone}用户刚砍${randomPrice}元`
})
}
5. 调用getStrs()
getStrs(200)
最后得到的就是这样的一个数组
总结
其实这个小需求确实没啥难的,但是我觉得最好还是不要膈应人,如果你跟我说的是几百条,那我肯定会给你写,如果你跟我说几十条,那我觉得没啥必要,毕竟我的时间也是时间