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

JavaScriptでキットカット(KitKat)配列を実装する方法

キットカット配列とは

「キットカット配列」は、有名なプログラミング課題であるFizzBuzz問題の応用版です。本記事では、JavaScriptを使ってこの問題を解く方法をわかりやすく解説します。

求められるのは、第1引数に自然数 num を、第2・第3引数に自然数 mn を受け取るJavaScript関数を作成することです。この関数は、1から num まで(num 自身を含む)のすべての自然数を昇順に格納した配列を返します。

ただし、以下のルールに従って、特定の数値を文字列に置き換える必要があります。

  • m の倍数の場合 → 文字列 'kit' に置き換える
  • n の倍数の場合 → 文字列 'kat' に置き換える
  • m と n の両方の倍数の場合 → 文字列 'kitkat' に置き換える

実装コード

実際のコードは以下の通りです。

const num = 50;
const m = 5, n = 6;
const kitKat = (num = 1, m = 1, n = 1) => {
    const res = [];
    for(let i = 1; i <= num; i++){
      if(i % m === 0 && i % n === 0){
          res.push('kitkat');
      }else if(i % m === 0){
          res.push('kit');
      }else if(i % n === 0){
          res.push('kat');
      }else{
          res.push(i);
      };
    };
    return res;
};
console.log(kitKat(num, m, n));

コードのポイント

この実装では、剰余演算子 % を使って各数値が m や n の倍数かどうかを判定しています。特に重要なのは条件分岐の順序です。「m と n の両方の倍数」の判定を最初に行うことで、単一の倍数判定に処理が奪われることを防ぎ、正しく 'kitkat' を出力できるようにしています。

出力結果

上記のコードをコンソールで実行すると、次のような出力が得られます。

[
    1, 2, 3, 4, 'kit',
    'kat', 7, 8, 9, 'kit',
    11, 'kat', 13, 14, 'kit',
    16, 17, 'kat', 19, 'kit',
    21, 22, 23, 'kat', 'kit',
    26, 27, 28, 29, 'kitkat',
    31, 32, 33, 34, 'kit',
    'kat', 37, 38, 39, 'kit',
    41, 'kat', 43, 44, 'kit',
    46, 47, 'kat', 49, 'kit'
]

出力を見ると、5 の倍数が 'kit' に、6 の倍数が 'kat' に、そして 30 のように両方の倍数である数値が 'kitkat' に置き換えられていることが確認できます。このように、シンプルなループと条件分岐の組み合わせで、キットカット配列を簡単に実装することができます。

  1. 【初心者向け】JavaScriptのreverse()メソッドで配列を逆順にする方法

    JavaScriptのreverse()メソッドは、配列の要素を元の順序と逆順に入れ替えるための便利な関数です。このメソッドを呼び出すと、配列の最初の要素が最後に、最後の要素が最初に移動し、配列全体が反転されます。reverse()メソッドの基本reverse()は配列そのものを変更する「破壊的メソッド」である点に注意してください。つまり、元の配列の順序が直接書き換えられます。元の配列を保持したい場合は、あらかじめslice()やスプレッド構文([...arr])などでコピーを作成してからreverse()を使用するのがおすすめです。サンプルコード以下は、ボタンをクリックすると配列の要素が逆順

  2. JavaScriptにおける配列の分割代入(Destructuring)の基本と使い方

    分割代入(Destructuring)とは、配列から値を取り出して個別の変数に展開するための構文です。ES2015(ES6)で導入されたこの機能を使うと、配列の各要素を簡潔かつ読みやすく変数に割り当てることができます。 配列の分割代入のサンプルコード 以下は、JavaScriptで配列の分割代入を行うコード例です。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport&quo