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

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

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

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

Q&A

2回答

253閲覧

javascript 連想配列について

ku-rya

総合スコア10

JavaScript

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

0グッド

0クリップ

投稿2018/10/04 11:49

この問題がわかりません
助力お願いします。、

引数で指定された色のカラーコードを返す関数を作ってください

但し、色とカラーコードは連想配列を使って管理すること

// 色とカラーコードを関連付けるための連想配列を定義する

// 取りあえず’red’、’green’、’blue’を定義すれば十分

var data = {………………………………};

var getColorCode = function(color){

……………………… // dataを参照して、colorが登録されていたら対応するカラーコードを返す // 登録されていない場合は「未登録」と返す

};

console.log(getColorCode(‘red’)); // ‘#FF0000’と表示

console.log(getColorCode(‘green’)); // ‘#00FF00’と表示

console.log(getColorCode(‘blue’)); // ‘#0000FF’と表示

console.log(getColorCode(‘yellow’)); // ‘未登録’と表示

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

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

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

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

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

dice142

2018/10/04 11:55

何がわからないのでしょう?穴埋め部分をそのままにせず、ご自身で考えたコードを入れてみてください。
m.ts10806

2018/10/04 11:57 編集

「この問題」とは?自分で解かなければカンニングと同等だと思うのですが。
guest

回答2

0

連想配列で管理してますし、全ての色名に対応できます。
これで無問題です。
理解できるかどうかはさておき。

js

1const data = {}; 2const getColorCode = function(colorName) { 3 // 既にあったら返す 4 if (data[colorName]) return data[colorName]; 5 6 const div = document.createElement('div'); 7 div.style.backgroundColor = colorName; 8 document.body.append(div); 9 const color = window.getComputedStyle(div).backgroundColor; 10 div.remove(); 11 12 // backgroundColorの初期値がrgba(0, 0, 0, 0)であることを利用して 13 // 存在しない色名だったら「未登録」を返す 14 if (color.includes('rgba')) return '未登録'; 15 16 const colorCode = '#' + color.replace(/rgb((.*))/, '$1').split(', ').map(num => ('0' + (num - 0).toString(16)).slice(-2).toUpperCase()).join(''); 17 18 // 一度作ったら覚えとく 19 data[colorName] = colorCode; 20 21 return colorCode; 22}

※ ちょっと足りてなかった仕様を盛り込みました。

  1. ない色は「未登録」と返す
  2. 色コードのアルファベットは大文字に

投稿2018/10/04 12:42

編集2018/10/04 13:32
spookybird

総合スコア1803

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

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

spookybird

2018/10/04 12:46

これ書いてて思いのほか楽しかった。
guest

0

助力ということなので、ヒントだけおいておきます。

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer#%E8%AA%AC%E6%98%8E

これの上2つ 「オブジェクトの生成、プロパティへのアクセス」 を見ればこの問題に必要な連想配列の知識は得られるはずです。

がんばってください!

投稿2018/10/04 11:57

fuuki

総合スコア70

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問