JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptでランダムなHEXカラーコードを生成する方法

Web開発では、ランダムな色を生成したい場面がよくあります。例えば、デモアプリケーションの配色や、データの可視化における自動的な色の割り当てなどが挙げられます。

本記事では、ランダムなHEX形式(16進数)のカラーコードを返す関数をJavaScriptで実装する方法を解説します。

ランダムカラーコード生成の仕組み

HEXカラーコードは、「#」に続けて0〜9およびA〜Fの16種類の文字を6つ並べた形式で表されます。つまり、この6文字をランダムに組み合わせることで、約1,677万色(16の6乗 = 16,777,216色)の中から任意の色を生成することが可能です。

コード例

const generateRandomColor = () => {
   const keys = '0123456789ABCDEF';
   let color = '';
   while(color.length < 6){
      const random = Math.floor(Math.random() * 16);
      color += keys[random];
   };
   return `#${color}`;
};
console.log(generateRandomColor());
console.log(generateRandomColor());
console.log(generateRandomColor());
console.log(generateRandomColor());

コードの解説

  • 定数keysには、16進数で使用される文字「0123456789ABCDEF」が格納されています。
  • whileループ内では、Math.random()に16を掛けた値をMath.floor()で切り捨てることにより、0から15までのランダムな整数を生成しています。
  • その整数をインデックスとしてkeysから1文字取り出し、変数colorに連結します。この処理を6回繰り返すことで、6桁の16進数が完成します。
  • 最後に先頭に「#」を付けて返すことで、有効なHEXカラーコードとして利用できます。

実行結果

コンソールには以下のように出力されます。なお、ランダム生成のため、実行するたびに異なる値が表示されます。

#C83343
#D9AAF3
#9D55CC
#28AE22

まとめ

Math.random()を活用したシンプルなロジックにより、ランダムなHEXカラーコードを簡単に生成できます。用途に応じて、明るさや色相の範囲を制限するなどのカスタマイズも可能なので、ぜひ応用してみてください。

  1. JavaScriptで数値の各桁の数字を一つずつ分割表示する方法

    はじめに この記事では、ユーザーが入力した数値を検証し、有効な数値であればその各桁の数字を画面に一つずつ表示するJavaScriptプログラムの作り方を解説します。 動作イメージ ページ上のボタンをクリックすると入力ダイアログが開き、そこに数値を入力してOKを押すと、入力された数値の各桁が一行ずつ画面に出力される仕組みです。 例えば、入力が次のような場合—— 43354 画面には次のように表示されます。 4 3 3 5 4 完成コード HTML <!DOCTYPE html> <html>   <head>   &n

  2. JavaScriptで数字パターンを表示する方法【初心者向けサンプルコード】

    本記事では、テキスト入力欄とボタンを備えたJavaScript・HTMLプログラムの作成方法を解説します。ユーザーが入力欄に任意の数値(例:5)を入力してボタンをクリックすると、画面に以下のような数字パターンが表示される仕組みです。(n = 5 の場合の出力例)01 01 02 01 02 03 01 02 03 04 01 02 03 04 05仕組みのポイントこのパターンは二重ループ(ネストしたforループ)を使うことで実現できます。外側のループが「行」を制御し、内側のループがその行に表示する「数字の個数」を制御します。i 行目には 1 から i までの数字が順番に出力されるため、行が進む