天天看點

前端進階|第十五天 位置有先後,排序很重要

上線在即,項目經理在内部聊天工具上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(''));           

今天有點短小,明天繼續加油。