JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptでトリボナッチ数列を生成する方法

    トリボナッチ数列とは?トリボナッチ数列は、フィボナッチ数列を一般化した数列です。フィボナッチ数列では各項が「直前の2項の和」になるのに対し、トリボナッチ数列では各項が「直前の3項の和」になります。トリボナッチ数列の最初のいくつかの項は以下のとおりです。0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149たとえば7番目の項「13」は、直前の3項である「2」「4」「7」を足した値(2 + 4 + 7 = 13)に一致します。作成する関数の仕様ここでは、数値 num を唯一の引数として受け取り、トリボナッチ数列の最初の num 個の項を要素にもつ配列を返すJavaScript関

  2. JavaScriptで配列を合計が等しいn個のサブ配列に分割できるか判定する方法

    問題の概要JavaScriptで、第1引数に整数の配列、第2引数に整数を受け取る関数を作成する必要があります。この関数の役割は、元の配列を第2引数で指定された個数(n個)のサブ配列(部分集合)に分割できるかどうかを判定することです。ただし、重要な条件として、すべてのサブ配列の合計値が等しくなければなりません。入出力の例たとえば、次のような入力が与えられたとします。const arr = [4, 3, 2, 3, 5, 2, 1]; const num = 4;この場合の出力は true になります。理由は、この配列を [5]、[1, 4]、[2, 3]、[2, 3] の4つのサブ配列に分割でき

  3. JavaScriptでオブジェクトの配列を1つのプレーンなオブジェクトにまとめる方法

    JavaScriptでは、複数のオブジェクトに分かれたプロパティを、1つのプレーンなオブジェクト(単一のオブジェクト)に統合したい場面があります。本記事では、オブジェクトの配列を受け取って、その中に含まれるすべてのプロパティを1つのオブジェクトへ集約する方法を、サンプルコードとともにわかりやすく解説します。変換元となるデータ例として、次のように2つのオブジェクトを持つ配列を用意します。const arr = [{     name: Dinesh Lamba,     age: 23,   &n

  4. JavaScriptで大文字・小文字を入れ替えるスワップケース関数の実装方法

    はじめに本記事では、文字列を引数として1つだけ受け取るJavaScript関数を実装します。入力される文字列には、大文字と小文字のアルファベットが混在している可能性があります。この関数の役割は、入力文字列をもとに新しい文字列を生成することです。具体的には、すべての大文字を小文字へ、すべての小文字を大文字へと変換します(いわゆる「スワップケース」処理です)。記号や数字など、アルファベット以外の文字はそのまま維持されます。実装の考え方各文字が小文字かどうかを判定し、小文字なら大文字へ、それ以外なら小文字へ変換するのが基本的なアプローチです。toLowerCase() と toUpperCase()

  5. JavaScriptでキャメルケース文字列を任意の区切り文字で分割する方法

    はじめに本記事では、第一引数に文字列、第二引数に区切り文字(セパレーター)を受け取るJavaScript関数の実装方法を解説します。入力される文字列は必ずキャメルケース(camelCase)形式であると想定し、関数は指定された区切り文字で単語を分割し、すべて小文字に変換した新しい文字列を返します。処理内容の確認たとえば、入力文字列と区切り文字が以下だった場合を考えてみましょう。const str = thisIsAString;const separator = _;このとき、期待される出力は次のとおりです。const output = this_is_a_string;つまり、大文字の直前で

  6. JavaScriptで最小ウィンドウ部分文字列を求める方法

    JavaScriptで、2つの文字列(str1とstr2)を受け取る関数を作成します。str1の長さは必ずstr2より長いことが保証されています。求めるのは、str2に含まれるすべての文字を含む、str1内の最短の連続部分文字列(最小ウィンドウ)です。問題の例たとえば、入力が次の場合を考えてみましょう。const str1 = abcdefgh; const str2 = gedcf;このとき、出力は次のようになります。const output = cdefg;「cdefg」は、str2のすべての文字(g、e、d、c、f)を含む、str1内で最も短い連続部分文字列だからです。解決アプローチ最も

  7. JavaScriptで文字列内の括弧の対応関係を検証する方法

    JavaScriptでは、開き括弧と閉じ括弧を含む可能性のある文字列を受け取り、すべての開き括弧に対して対応する閉じ括弧が存在するかどうかを判定する関数を実装する必要があります。括弧が正しく対応していれば関数は true を返し、そうでなければ false を返します。要件の例f((hello (world))) = true f((hello (world)) = false最初の文字列は括弧が正しく入れ子になっており対応しているため true となります。一方、2つ目の文字列は閉じ括弧が1つ不足しているため false になります。アプローチ:カウンターを使った検証この問題は、カウンター変

  8. JavaScriptでforループを使って文字列を反転させる方法

    JavaScriptでは、文字列を引数として受け取り、その文字列を逆順に並べた新しい文字列を生成する関数を作成できます。本記事では、forループを使用して文字列を反転させるシンプルな方法を解説します。実装のポイント文字列を反転させる基本的な考え方は以下の通りです。文字列の末尾(最後のインデックス)から先頭に向かって、インデックスを1つずつ減らしながらループ処理を行う各インデックスに対応する文字を取り出し、結果用の変数に順番に連結していくコード例実際のコードは次のようになります。const str = this is the original string; const reverseStri

  9. JavaScriptで文字列内の最長の単語を検索する方法

    文字列から最長の単語を見つけるJavaScript関数文字列を唯一の引数として受け取り、その文字列を走査して最も長い単語を見つけて返すJavaScript関数を作成する方法を解説します。例入力文字列が以下の場合を考えてみましょう。const str = Coding in JavaScript is really fun;この場合、出力は次のようになります。const output = JavaScript;コード例以下が実際のコードです。 len){ acc = val; }; return acc; }, ); return word;

  10. JavaScriptで平均値と最頻値が一致するかどうかを判定する方法

    本記事では、ソート済みの数値配列を受け取り、そのデータセットから平均値(平均)と最頻値(モード)を計算し、両者が一致する場合に true、そうでない場合に false を返すJavaScript関数の実装方法を解説します。問題の概要要件は以下のとおりです。引数としてソート済みの数値配列を受け取る配列内の数値から平均値を求める配列内の数値から最頻値を求める平均値と最頻値が等しければ true を、等しくなければ false を返す具体例たとえば、入力配列が次のような場合を考えてみましょう。const arr = [5, 3, 3, 3, 1];この配列の場合、平均値は (5 + 3 + 3 +

  11. JavaScriptで配列の合計と積の絶対差を求める方法

    本記事では、数値の配列を唯一の引数として受け取り、配列内のすべての数値の合計と積を計算し、その絶対差を返すJavaScript関数の実装方法を解説します。例えば、配列 [1, 4, 1, 2, 1, 6, 3] の場合、合計は 18、積は 144 となるため、返される値は |18 − 144| = 126 になります。実装コード以下がそのコード例です −const arr = [1, 4, 1, 2, 1, 6, 3]; const sumProductDifference = (arr = []) => {     const creds = a

  12. JavaScriptで深くネストされたリテラルの配列をフラット化(平坦化)する方法

    この記事では、入れ子(ネスト)になった配列を引数として受け取り、すべてのリテラル要素を階層なしで含む新しい配列を生成するJavaScript関数の作り方を解説します。つまり、どれだけ深くネストされた配列でも、要素を一列に並べた「フラットな配列」に変換する処理です。入力と出力のイメージたとえば、次のような配列が入力として与えられたとします。const arr = [ 1, 3, [5, 6, [7, [6, 5], 4], 3], [4] ];期待される出力は以下の通りです。ネストが完全に解除され、要素が順番に並んでいることがわかります。const output = [1, 3, 5,

  13. JavaScriptで2つの配列の和集合を求める方法【初心者向け解説】

    プログラミングにおいて、集合演算はデータ処理の基本となる重要な概念です。本記事では、JavaScriptを使って2つの配列から和集合(Union)を求める方法を、実際のコード例とともにわかりやすく解説します。 和集合とは?和集合とは、2つの集合の要素をすべて組み合わせて作られる集合のことです。つまり、集合Aと集合Bの和集合は、「Aに含まれる要素、Bに含まれる要素、またはその両方に含まれる要素」の集まりになります。 ポイントは、重複する要素は1つだけ残すという点です。これにより、すべてのユニークな要素を持つ新しい集合が得られます。 具体例例として、次のような2つの配列があるとします。 const

  14. JavaScriptで正方行列を90度回転させる方法|追加メモリ不要のin-place実装

    n × n の二次元配列(正方行列)を受け取り、それを時計回りに90度回転させるJavaScript関数を作成してみましょう。ここでの重要な条件は、余分な配列を新しく確保せずに(in-placeで)処理を行うことです。つまり、元の配列そのものを直接書き換えて回転を実現します。入力例と期待される出力たとえば、次のような3×3の行列が入力だった場合を考えます。const arr = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];この行列を時計回りに90度回転すると、結果は次のようになります。const output = [ [7, 4, 1

  15. JavaScriptで2Dグリッドの一意のパスの数を見つける方法

    問題の概要m × n のサイズを持つ2次元配列(グリッド)を想定してみましょう。ある人はこのグリッドの左上のマス (0, 0) からスタートし、右下のゴール地点へ到達することを目指しています。ただし、移動には制限があります。1回の移動で選べるのは「1マス下へ進む」か「1マス右へ進む」のどちらか一方だけです。私たちの課題は、グリッドの高さ(行数)と幅(列数)を引数として受け取り、スタートからゴールまで到達できる「一意のパス(経路)」の総数を計算するJavaScript関数を作成することです。アプローチ:動的計画法この問題は動的計画法(DP)を使うことで効率的に解けます。ポイントは、任意のマスに到

  16. JavaScriptでシーザー暗号を使って文字列を暗号化する方法

    シーザー暗号とはシーザー暗号(Caesar Cipher)は、最もシンプルかつ広く知られている暗号化手法のひとつです。古代ローマのユリウス・カエサルが軍事通信に用いたことでも知られており、平文の各文字をアルファベット上で一定の文字数だけずらした別の文字に置き換える「単一換字式暗号」に分類されます。たとえば、3文字左へずらす場合、D は A に、E は B というように変換されていきます。ここでは、第1引数に暗号化したい文字列、第2引数にシフト量を受け取る JavaScript 関数を実装します。シフト量には正負どちらの整数も指定でき、正の値は右方向へのシフト、負の値は左方向へのシフトを意味しま

  17. JavaScriptで基数ソート(Radix Sort)を実装する方法

    基数ソート(Radix Sort)とは?基数ソート(ラディックスソート)は、整数のキーを持つデータを、同じ桁位置・同じ値を持つ「桁」ごとにグループ分けしながら並べ替えていくソートアルゴリズムです。比較ベースのクイックソートやマージソートとは異なり、桁の値を直接利用してバケット(桶)に振り分けることで、整列を行います。計算量は、要素数を n、最大桁数を d、基数を b とすると O(d × (n + b)) となり、条件が揃えば非常に高速に動作するのが特徴です。実装の要件ここでは、リテラルの配列を唯一の引数として受け取る JavaScript 関数を作成します。この関数は、基数ソートのアルゴリズ

  18. JavaScriptで2つの文字列に共通する最長部分文字列を見つける方法

    問題の概要2つの文字列を受け取り、その両方に共通して現れる「最も長い連続した部分文字列」を見つけ出して返すJavaScript関数を作成してみましょう。ここでは、入力文字列を str1 と str2 と呼ぶことにします。例たとえば、入力文字列が以下の場合を考えてみます。const str1 = ABABC; const str2 = BABCA;このとき、期待される出力は次のとおりです。const output = BABC;解決アプローチ:動的計画法(DP)この種の問題は動的計画法を使うことで効率的に解くことができます。基本的な考え方は以下のとおりです。2次元の表(arr)を作成し、arr[

  19. 【JavaScript】配列から合計が最大となる連続部分配列を求める方法(カダネのアルゴリズム)

    問題の概要 正と負の整数が混在する配列を受け取り、その中から合計が最大となる連続した部分配列を見つけ出して返す、JavaScript関数を作成してみましょう。 配列には負の要素も含まれているため、連続する要素の合計は正にも負にもなり得ます。あらゆる区間の組み合わせの中で最も大きな合計値を持つ部分配列を特定し、その配列自体を返すことがゴールです。 入力例 たとえば、次のような配列を考えてみます。 const arr = [-2, -3, 4, -1, -2, 1, 5, -3]; この場合に達成できる最大の合計は 7 であり、出力すべき部分配列は以下のとおりです。 const output =

  20. JavaScriptで2つの配列から共通する最長シーケンスを見つける方法

    問題の概要リテラル値を要素とする2つの配列(arr1 と arr2)を受け取る JavaScript 関数を作成する必要があります。この関数は、両方の配列に共通して現れる最長の要素列(ストリーク)を見つけ出し、その要素を新しい配列として返します。共通する要素が存在しない場合は空文字列を含む配列が返されます。入力例const arr1 = [a, b, c, d, e]; const arr2 = [k, j, b, c, d, w];この場合、両方の配列に「b」「c」「d」がこの順序で共通して現れているため、期待される出力は以下のようになります。出力例const output = [b, c,

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:36/297  20-コンピューター/Page Goto:1 30 31 32 33 34 35 36 37 38 39 40 41 42