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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

529閲覧

【初心者】Javascript メソッド・引数・コールバック関数 について。

AnJu

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2023/05/29 14:22

実現したいこと

下記の問題の正答を知りたい。

前提(課題内容)

下記の関数を経由して2つの関数を実行するような処理を作ってください。
という課題を出されているのですが、コンソールにトマトと玉ねぎの税込み価格を表示とあるのですが、後から後から 指摘をもらい先に進めず困っています。

※問題の記述を変えることは、できません。

function addTax(price, func) { // priceは値段 // funcは実行する関数名 // 税込み価格を計算して四捨五入して整数にしている(スコープ内でしか参照できません。) const taxPrice = Math.round(price * 1.10); } // トマトの税込み価格をコンソールに表示させる処理 // 玉ねぎの税込み価格をコンソールに表示させる処理 ### 発生している問題・エラーメッセージ 上記の課題にて作成したのが下記になります。

該当のソースコード

function addTax(price, func) { const taxPrice = Math.round(price * 1.10); func(taxPrice); return addTax } //共通でコンソールに出力する処理 function displayPrice(name, price) { console.log(name + " の値段は" + price + "円です。"); } // トマトの税込み価格をコンソールに表示させる処理 addTax(100, function(price) { displayPrice("トマト", price); }); // 玉ねぎの税込み価格をコンソールに表示させる処理 addTax(80, function(price) { displayPrice("玉ねぎ", price); });

試したこと(知りたいこと)

上記の課題でこのように作成したのですが

・計算した結果をaddTaxに渡すよう実装して下さい。
・計算を行う関数を実行→計算→コンソールに表示する関数を実行→コンソールに表示の流れで実装 して下さい。
・計算を行う関数とコンソールに表示する関数は共通して使えるものして下さい。
・前回コンソールに表示する関数は共通して使えるものして下さいと言ったのでそのようにして下さい。
・計算を行う処理も、コンソールに表示する処理も扱う値が違うだけでやっていることは同じです。
同じような処理を何個も作るのは冗長です。

という指摘をもらっていますが
内容をうまく理解できません。

ご教授いただきたく存じます。

補足情報(FW/ツールのバージョンなど)

この課題では上記以外の情報が無いためある程度自由に作成できますが
問題自体を崩すことはできません。

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

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

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

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

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

meg_

2023/05/29 16:05

> 下記の問題の正答を知りたい。 teratailで教えてもらうことはカンニングには当たりませんか?大丈夫ですか??
AnJu

2023/05/29 21:05

ご指摘ありがとうございます。 答えを聞くのは確かにだめですね 初めてのJavaScriptで かなり悩みました。 この問題を解決する ヒントだけでも頂けると幸いです
退会済みユーザー

退会済みユーザー

2023/05/30 01:46 編集

研修の課題とか学校の宿題の答えをここで聞くのは筋違いです。講師に聞いてください。 https://teratail.com/help/avoid-asking "学校の課題を解いてほしい等の質問は、具体的にプログラミングで困っている質問ではないと考え、推奨していません" > 上記の課題でこのように作成したのですが ・・・ > という指摘をもらっていますが内容をうまく理解できません。 と書いてあるところから、講師の方はちゃんと教えてくれているように思えますけど。
AnJu

2023/05/30 04:04

ご指摘ありがとうございます。 今後は時間が掛かっても納得行くまで質問するようにします。
guest

回答2

0

このようなのを考えてみました。

javascript

1function myFunction() { 2 const item = {}; 3 function displayPrice(price) { 4 console.log(`${item.name}の税込価格は${price}円です。`); 5 } 6 function addTax(price, func) { 7 // priceは値段 8 // funcは実行する関数名 9 // 税込み価格を計算して四捨五入して整数にしている(スコープ内でしか参照できません。) 10 const taxPrice = Math.round(price * 1.10); 11 if (func) { 12 func(price); 13 } 14 return taxPrice; 15 } 16 // トマトの税込み価格をコンソールに表示させる処理 17 item.name = 'トマト'; 18 item.price = 120; 19 addTax(addTax(item.price), displayPrice); 20 // 玉ねぎの税込み価格をコンソールに表示させる処理 21 item.name = '玉ねぎ'; 22 item.price = 150; 23 addTax(addTax(item.price), displayPrice); 24}

正解がわかったら、ぜひ教えてください。

投稿2023/05/30 08:28

YellowGreen

総合スコア731

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

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

0

若干指摘の意味が不明ですが、好意的に解釈するとこんな感じでしょうか?

javascript

1function addTax(price, func) { 2 const taxPrice = Math.round(price * 1.10); 3 func(name, taxPrice); 4} 5function displayPrice(name, price) { 6 console.log(`${name}の値段は${price}円です。`); 7} 8addTax(100,displayPrice.bind(name='トマト')); 9addTax(80,displayPrice.bind(name='玉ねぎ'));

※根本的な間違いがあったので修正

投稿2023/05/30 03:25

編集2023/05/30 03:28
yambejp

総合スコア114829

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問