8.完成設定功能
在需求之初,我們有四個設定
1.設定最小購買量
2.設定最大購買量
3.設定庫存
4.設定倍數購買
現在我們把這四個設定先善一下:
//設定最小購買量
Quantity.prototype.setMinbuy = function (n) {
this.minbuy = Number(n);
};
//設定最大購買量
Quantity.prototype.setMaxbuy = function (n) {
this.maxbuy = Number(n);
};
//設定庫存
Quantity.prototype.setStock = function (n) {
this.stock = Number(n);
};
//設定倍數購買
Quantity.prototype.setTuple = function (n) {
this.tuple = n;
};
上面的程式碼不復雜,就是一些簡單的設定,我們發現當隨便設定了那個引數之後,都會影響真實的最大購買量和最小購買。因此這4個方法執行之後,我將他統一執行一個函式,於是我就多了這麼一個方法。
//設定值後,重新整理一些狀態
Quantity.prototype.reinit = function () {
};
重新整理哪些狀態?
1.真實的最大購買量和真實的最小購買量要先算出來
2.將當前的選中數變成真實的最小購買量
3.介面上顯示真實的最小購買量
4.其他的變數將來也可以寫在裡面。
然後就按這些需求寫程式碼:
//設定值後,重新整理一些狀態
Quantity.prototype.reinit = function () {
//1.真實的最大購買量和真實的最小購買量計算
this.tupleMaxbuy = Math.floor(Math.min(this.maxbuy, this.stock) / this.tuple) * this.tuple;
this.tupleMinbuy = Math.max(Math.ceil(this.minbuy / this.tuple) * this.tuple, this.tuple);
//2.將當前的選中數變成真實的最小購買量
this.no = this.tupleMinbuy;
//3.介面上顯示真實的最小購買量
this.numBox.text(this.tupleMinbuy);
//4.其他要變化的內容
};
示例程式碼:http://jsfiddle.net/gs_jquery/cx43x374/ 另外在上面的四個設定方法都需要執行一下reinit這個方法。
真實最大購買量的演算法
- 比較這個商品的最大購量和真實的存量,選小的那個
- 結合倍數購買量再計算。如最大購買量7,而要求按2的倍數買,說明最大隻能到6
真實最小購買量的演算法
1.比較這個商品的最小購量和倍數購買,選大的那個
2.結合倍數購買量再計算。
簡單的測試一下
quantity.setTuple(2);
quantity.setMinbuy(3);
quantity.setMaxbuy(21);
quantity.setStock(11);
傳了一些值進去,然後進行簡單的測試:http://jsfiddle.net/gs_jquery/utL64xp2/
Math的其中三個方法
//1.向上取整:
Math.ceil(3.3);
//2.向下取整:
Math.floor(3.3);
//3.四捨五入:
Math.round(3.3);
Math.round(3.8);
很有用的三個方法基礎方法,有時候可以很巧妙的解決一些問題。
相關文章
- 剛完成的R12 GL 設定文件
- Excel表格排序功能設定Excel排序
- IDEA中Usage提示功能設定Idea
- 為設定中心新增常用功能
- 簡單3步,完成企業文件許可權設定
- 《Java程式設計思想》筆記8.多型Java程式設計筆記多型
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- 8.函式函式
- 8.常用容器
- win10電腦沒有照相功能怎麼設定_win10沒有照相功能的設定方法Win10
- SAP 設定SAPGUI自動LogOut功能GUIGo
- sqlplus 中設定命令回顯功能SQL
- 設計模式的征途—8.橋接(Bridge)模式設計模式橋接
- Java JVM——8.堆JavaJVM
- 修改eclipse的自動完成功能Eclipse
- 今天內容完成頭像更換功能
- Android使用者登入功能完成Android
- Win8系統設定休眠選項功能
- Sublime Text 3最好的功能、外掛和設定
- Sublime Text 3 最好的功能、外掛和設定
- 如何設定Android標題欄的自定義功能和隱藏功能Android
- 敏捷開發中如何定義“完成”?敏捷
- win10怎麼設定快速啟動_win10快速啟動功能如何設定Win10
- PYMNTS:美國完成設定Apple Pay使用者使用率僅6.1%APP
- 【shmmax】由於shmmax設定過小導致dbca建庫無法完成HMM
- 8. 傻瓜運維工具運維
- 8.消抖技術
- flutter使用Provider完成動態主題功能FlutterIDE
- Win10系統如何進入設定功能頁Win10
- 設定windows 7的Aero Peek的桌面預覽功能Windows
- 如何在WPS文字中設定計算器功能
- bat一鍵設定開啟或關閉windows功能BATWindows
- 合理設定office Word的智慧化貼上功能(轉)
- Win10怎樣設定Windows Hello功能 win10系統設定Windows Hello的步驟Win10Windows
- 8.轉換文字函式函式
- 【重溫基礎】8.字串字串
- 8.空指標異常指標
- 【譯】8. Java反射——註解Java反射