前端进阶|第十五天 位置有先后,排序很重要
2019-10-17 本文已影响0人
皮卡球ca
上线在即,项目经理在内部聊天工具上Q我,这个排序啊,副总经理一定要在总经理后面,总监要在经理前面。。
当然传统的实现方案是,建立一个表,把这个排序规则用一个index标注一下,但一方面可能这个对应项目很少,一方面建表容易,维护麻烦。那有没有什么可以用代码直接搞定的呢?
然后就看到了盛大的一道笔试题。
在一个字符串数组中有红、黄、蓝三种颜色的球,且个数不相等、顺序不一致,请为该数组排序。使得排序后数组中球的顺序为:黄、红、蓝。
例如:红蓝蓝黄红黄蓝红红黄红,排序后为:黄黄黄红红红红红蓝蓝蓝。
不要被球搞蒙了,其实他这个就是一道排序题,只要懂得如何转换问题,实现起来就容易的多了。
let str='红蓝蓝黄红黄蓝红红黄红';
let arr=str.split('');
let index={'黄':0,'红':1,'蓝':2}
arr.sort((pre,next)=>{ return index[pre]-index[next]});
console.log(arr.join(''));
今天有点短小,明天继续加油。