質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

154閲覧

jQueryで納期を算出する記述の添削

ync_pp

総合スコア11

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/04/01 10:27

編集2019/04/01 11:00

実現したいこと

以下のような印刷システムの納期を、
jQueryで算出する機能を設置したいと考えております。

jQueryは初歩的な知識しかありませんが、
試行錯誤の末、なんとか思うような結果を出力させることはできました。

ただ、ソースの内容に無駄が多い気がするというか、
関数のまとめ方や変数の置く場所など、
もっとスマートに記述できそうに思います。

「ここはこう書く方が一般的」「こうした方がスマート」など、
もしアドバイスや添削をいただけましたら大変ありがたいです。

納期の算出方法

1日に印刷できるのが片面2色までの機械で、
片面につき2色増えるごとに1日納期が発生します。

色数を表/裏で表すと、

1/0、2/0 = 1日後発送
2/1、3/0、4/0、2/2 = 2日後発送
3/1、3/2、5/0 = 3日後発送
3/3、4/3、4/4、5/1、5/2 = 4日後発送 ....

となり、最大で10/10まで印刷可能です。
両面の納期を合わせた日数が、印刷の納期となります。
(表/裏の色数は逆でも納期は同じです。)
また、追加加工の内容により納期が0~1日追加されます。

プルダウンにて「表の色数(0-10色)」「裏の色数(0-10色)」
「追加加工(「折り」など数種)」を選択すると納期が算出されます。

自分で書いたソースコード

jQuery

1$(function() { 2 $('button').click(function () { 3 4 //プルダウンの数値を取得 5 var omoteColor = $('#omote-color').val(); 6 var uraColor = $('#ura-color').val(); 7 var optionType = $('#option-type').val(); 8 9 //表の納期 10 function dayOmote() { 11 if(omoteColor == 0){return 0; 12 }else if(omoteColor <= 2){return 1; 13 }else if(omoteColor <= 4){return 2; 14 }else if(omoteColor <= 6){return 3; 15 }else if(omoteColor <= 8){return 4; 16 }else if(omoteColor <= 10){return 5; 17 } 18 }; 19 20 var omote = dayOmote(); 21 22 //裏の納期 23 function dayUra() { 24 if(uraColor == 0){return 0; 25 }else if(uraColor <= 2){return 1; 26 }else if(uraColor <= 4){return 2; 27 }else if(uraColor <= 6){return 3; 28 }else if(uraColor <= 8){return 4; 29 }else if(uraColor <= 10){return 5; 30 } 31 }; 32 33 var ura = dayUra(); 34 35 //加工の納期 36 function dayOption() { 37 if(optionType == 'nashi'){return 0; 38 }else if(optionType == 'kado'){return 0; 39 }else if(optionType == 'ori'){return 1; 40 }else if(optionType == 'mishin'){return 1; 41 } 42 }; 43 44 var option = dayOption(); 45 46 //表・裏・加工の納期を足して最終的な納期を出す 47 var deliveryDay = parseInt(omote) + parseInt(ura) + parseInt(option); 48 $('.delivery-date > span').text(deliveryDay); 49 }); 50});

どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1var color=[ 2 [1,0],[2,0], 3 [2,1],[3,0],[4,0],[2,2], 4 [3,1],[3,2],[5,0], 5 [3,3],[4,3],[4,4],[5,1],[5,2], 6 ]; 7color.forEach(x=>{ 8 var day=Math.round(x[0]/2)+Math.round(x[1]/2); 9 console.log(`${x[0]}-${x[1]}-${day}`); 10});

投稿2019/04/01 10:39

yambejp

総合スコア114814

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ync_pp

2019/04/01 12:53

ご回答ありがとうございます。 拝見してパッと理解できないものでお恥ずかしいですが、調べながら読み解かせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問