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);
很有用的三個方法基礎方法,有時候可以很巧妙的解決一些問題。
相關文章
- IDEA中Usage提示功能設定Idea
- 《設計模式》 - 8. 外觀模式( Facade )設計模式
- 為設定中心新增常用功能
- 簡單3步,完成企業文件許可權設定
- 《Java程式設計思想》筆記8.多型Java程式設計筆記多型
- win10電腦沒有照相功能怎麼設定_win10沒有照相功能的設定方法Win10
- 專案功能--批次匯入預約設定
- TornadoFx設定儲存功能((config和preference使用))
- 8.常用容器
- Android使用者登入功能完成Android
- Java JVM——8.堆JavaJVM
- win10怎麼設定快速啟動_win10快速啟動功能如何設定Win10
- 今天內容完成頭像更換功能
- flutter使用Provider完成動態主題功能FlutterIDE
- PYMNTS:美國完成設定Apple Pay使用者使用率僅6.1%APP
- Win10系統如何進入設定功能頁Win10
- Laravel-admin 對使用者設定禁用功能Laravel
- 敏捷開發中如何定義“完成”?敏捷
- 8. 傻瓜運維工具運維
- 8.正規表示式
- 8.消抖技術
- Win10怎樣設定Windows Hello功能 win10系統設定Windows Hello的步驟Win10Windows
- uniapp實戰——完成圖片的預覽功能APP
- 好程式設計師Python培訓之log日誌功能及設定方法程式設計師Python
- 安裝系統時沒有網路無法完成設定進入系統
- 8.轉換文字函式函式
- 【重溫基礎】8.字串字串
- #8. 「模板」樹鏈剖分
- 零基礎學習Alfred(三):常用功能和設定Alfred
- 零基礎學習Alfred(二):常用功能和設定Alfred
- windows10系統怎麼設定TCP/IP篩選功能WindowsTCP
- 開發直播app 軟體時iOS端廣告功能設定APPiOS
- ant Design 表格 只設定升序和降序,取消--取消排序功能排序
- 在樹莓派上設定家庭網路的家長控制功能樹莓派
- 微軟win10 19H1中工作管理員新功能曝光:新增設定預設選項卡功能微軟Win10
- Laravel setting 設定 / 系統設定 / 網站設定Laravel網站
- win10系統下預設閘道器設定完成後總是自動消失如何解決Win10
- win10 1909系統設定滑鼠左右鍵功能互換教程Win10
- Synology群暉NAS儲存設定多功能共享印表機的方法