JavaScript 打怪升級 —— 把業務邏輯當練習題做

發表於2017-12-21

1.前言

開發專案和出沒社群有一段時間了,會遇上一些比較有印象業務需求。這些業務需求,可能是自己開發專案遇上的,可能是在社群看到的業務需求,或者其他情況接觸到的需求,但是這些業務需求的實現邏輯都值得一寫。因為這些業務邏輯可以當做練習題一樣,可以給大家練手。也希望大家從這些需求實現的邏輯裡面可以能到javascript的相關知識,當然如果大家覺得程式碼需要怎樣優化,或者有什麼建議,更好的實現方案,覺得我哪裡寫錯了,或者有覺得可以分享的需求,可以在評論提下!

2.月份座標軸

這個需求是,看下圖就懂了

 

bVZE5GbVZE59

實現方式其實很簡單,我在程式碼打上註釋,大家就懂了!

可能大家看著會懵,直接看下面的迴圈圖就懂了

bVZFef

3.數值區間

如下圖,就是幾個數值區間,而且會有一個最小值和最大值

bVZqVP

測試用例

執行結果

JavaScript 打怪升級 —— 把業務邏輯當練習題做

4.陣列對比

這個基於我回答過的一個問題,現在化用,改寫一下

JavaScript如何對比兩個陣列?陣列B根據陣列A來做出增刪? (不用jquery,原生js)
具體問題是這樣的:

arryA

arryB

1、如果arryA中有a,arryB中沒有,那麼在arryB中增加一個key值為a的boj,且其他屬性值可均為’0′;如下: {key:’a’,num1:’0′,num2:’0′,num3:’0′,tot’:0′}

2、如果arryA中有a,arryB中也有key值為a的obj,那麼arryB則不改變,並且該obj裡的其他屬性和屬性值均不變;

3、如果在arryA中刪除了a,那麼arryB中key值為a的obj整個刪掉。

測試

bVZFB6

5.學院獲獎

統計學生申請優秀畢業生,並且符合條件的(成績優秀,拿過獎學金,獲得過三好學生)。前提是要申請

大概的流程圖就是像下面這樣!

bVZGtZ

我在程式碼上寫上註釋,相信不難理解了

6.陣列連續的最大長度

這個也是出於我回答過的問題:如下

 

bVVkoGbVVkrT

7.答題連對數

這個和上面的程式碼基本一樣,只是判斷條件毫釐之差,直接貼,大家看就好

bVZFHs

8.命名方式轉換

比如駝峰命名方式轉’-‘命名方式。

bVZFM3

比如’-‘命名方式轉駝峰命名方式

bVZFND

9.格式化字元

這個最常見的就是在金額方面的顯示需求上,比如後臺返回10000。前端要顯示成10,000或者其他格式等!

bVZGem

10.物件合併,並且記錄異常資料

這個需求,可能大家有點懵。下面例項分析
比如有兩個都地方記錄了我的資訊

現在要合併我的資訊,並且記錄可能有異常的資訊。比如上面的name屬性,在兩個物件都有,而且兩個物件的值不一樣,那麼就不知道到底是info1中的name屬性是正確的,還是info2中的name屬性是正確的。所以,就得把name這個屬性記錄起來,方便以後核對name這個屬性。

如下圖

bVZK5J

下面,一步一步來,先不管3721,直接合並屬性

然後先準備一個欄位,記錄哪些異常資訊

最後檢查物件,判斷哪些資訊有異常

11.篩選標籤

如下圖,在下面渲染這個標籤

bVZRX5

大家可能第一可能覺得壓根沒難度
就是一個物件陣列:比如

但是這樣的資料,顯然是要經過處理生成的

因為不可能這樣傳送請求

傳送過去的引數應該是這樣的

怎麼進行資料的處理呢,其實很簡單,程式碼不打註釋,我想都看得懂

bVZR7C

有了這些資料,渲染到頁面這個就簡單了!

12.匯入excel內容

就是excel上這樣的內容

bV0cT9

轉成下面的資料

 

bV0cV8

bV0cWa

目錄如下

bV0c7w

下面開始寫程式碼,我們利用node.js來寫

然後命令列執行該js

然後就發現多了一個test.js檔案

bV0c8J

excel的資料就這樣匯入成js的一個陣列了,只要引入這個陣列,就可以正常的使用了!

13.隨機迴圈

當時接到的業務是實際顯示客戶的資訊,感覺有點像音樂播放器的隨機迴圈。

要求有兩個:
1.一個提示列表裡面,提示的資訊每隔500ms隨機展示。
2.同一輪迴圈裡面,一個提示資訊只能展示一次。
3.列表的提示資訊全部展示完了,進行下一輪展示。
這個邏輯沒什麼,直接在程式碼打上註釋,我想大家就明白了!

bV0wv6

14.小結

好了,關於我收集到的一些業務需求邏輯,以及實現的方式,就說到這裡了!接觸到的也無需求邏輯很多,但是值得寫的,可以當做練習題的,就記錄到這裡了。我上面程式碼實現可能會有點粗糙,大家有更好的實現方案,歡迎建議一下。如果大家有什麼可以當做練習題的需求,可以提下。讓大家有多些練習題可以嘗試下,學習下!

相關文章