JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. 【JavaScript】重複を含む配列を、各要素の出現回数を持つオブジェクト配列に変換する方法

    例えば、次のように重複した要素を含む文字列の配列があるとします。const arr = [California,Texas,Texas,Texas,New York,Missouri,New Mexico,California];ここで求められるのは、このような配列を受け取るJavaScript関数を作成することです。作成する関数は、元の配列に含まれる一意な(ユニークな)要素ごとに1つのオブジェクトを生成し、それぞれのオブジェクトに出現回数を表す「count」プロパティを持たせた配列を返す必要があります。したがって、上記の配列を渡した場合の最終的な出力は、次のようになります。const out

  2. JavaScriptでオブジェクト配列をキーごとにグループ化して値を集約する方法

    問題の概要次のようなオブジェクトの配列があるとします。const arr = [ { name: JON, flight:100, value: 12, type: uns }, { name: JON, flight:100, value: 35, type: sch }, { name: BILL, flight:200, value: 33, type: uns }, { name: BILL, flight:200, value: 45, type: sch } ];ここで求められているのは、このような配列を受け取るJavaScript関数を書くことです

  3. 【JavaScript】サブ配列の要素も含めて配列全体を並べ替える方法

    本記事では、整数のペアを格納したサブ配列からなる配列を受け取り、その中に存在するすべての要素を含めて並べ替えるJavaScript関数の作り方を解説します。 問題の概要 作成するJavaScript関数は、整数の配列を要素として持つ配列(ネストされた配列)を受け取ります。各サブ配列には、必ず2つの整数が含まれているものとします。 この関数は、サブ配列の中身も含めた配列全体を並べ替えた結果を返す必要があります。 入力例 const arr = [ [4, 2], [6, 1], [5, 3] ]; 期待される出力 const output = [ [1, 2

  4. JavaScriptで各サブ配列の平均を個別に計算し、すべての平均の合計を返す方法

    例えば、次のような整数を要素とする配列の配列(ネストされた配列)があるとします。 const arr = [ [1, 2, 3], [4, 5, 6] ]; ここで求められているのは、このような配列の配列を引数として受け取り、各サブ配列の平均値を個別に計算したうえで、それらすべての平均の合計を返すJavaScript関数を作成することです。 したがって、上記の配列の場合、出力は次のようになります。 2 + 5 = 7 コード例 この処理を実装したコードは次のとおりです。 total += num, 0); return acc += total / val.

  5. 【JavaScript】各サブ配列の要素間の差を計算して合計を返す方法

    問題の概要今回は、2つの要素を持つサブ配列からなるネストされた配列を受け取り、各サブ配列の「最初の要素」と「2番目の要素」の差を個別に計算し、それらの差の合計値を返すJavaScript関数を作成します。このような処理は、データセット内の増減額を集計したり、複数のペアごとの変化量を一括で求めたりする場面で役立ちます。入力例と期待される出力たとえば、入力配列が以下のようになっているとします。const arr = [ [5, 3], [9, 4], [3, 7], [4, 6] ];この場合、各サブ配列の差は次のように計算されます。 [5, 3] → 5 − 3

  6. JavaScriptでフィボナッチ風の数列のn番目の項を求める方法

    この記事では、次のように定義される数列を扱います。 連続する2項 t1 と t2 が与えられたとき、3番目の項は以下の式で求められます。 t3 = t1 + (t2 * t2) フィボナッチ数列と同様に、この数列の最初の2項は常に 0 と 1 です。 ここで求められているのは、数値 n を引数として受け取り、上記のルールに従う数列の n 番目の項を計算して返すJavaScript関数を作成することです。 たとえば、n = 6 の場合、結果は次のようになります。 t6 = 27 これは、数列が次のように展開されるためです。 0 1 1 2 5 27 各項の計算過程を見てみましょう。 t1 =

  7. JavaScriptで配列の要素から目標の合計になるすべての組み合わせを求める方法

    数値の配列を第1引数に、目標となる合計値を第2引数として受け取るJavaScript関数を作成する必要があります。この関数は、配列内の要素(同じ要素の繰り返し使用も可)を組み合わせて、合計が目標値と一致するすべての組み合わせを、配列の配列として返すものです。問題の例たとえば、入力配列が次のような場合を考えてみましょう。const arr = [2, 3, 6, 7], sum = 7;この入力に対する出力は、次のようになります。const output = [ [2, 2, 3], [7] ];「2 + 2 + 3」と「7」の2通りの組み合わせが、いずれも合計7になるためです。

  8. 【JavaScript】バックトラックで階段の上り方を全パターン列挙する方法

    問題設定n段の階段を上ることを考えます。せっかくなので、運動も兼ねて一段ずつ歩くのではなく、ジャンプして登ることにしましょう。1回のジャンプで進めるのは最大k段まで。ここではkは階段の段数に関係なく、常に1か2であるとします。課題は、この階段を上り切るために取り得るすべてのジャンプ系列を、ソート済みの配列として返すことです。入出力例たとえば n = 4、k = 2 のとき:climbingStaircase(4, 2)期待される出力は以下のとおりです。[[1, 1, 1, 1], [1, 1, 2], [1, 2, 1], [2, 1, 1], [2, 2]][1, 1, 1, 1] は毎回1

  9. JavaScriptでエンコードされた文字列をデコードする関数の実装方法

    問題の概要エンコードされた文字列が与えられ、それを処理してデコード後の文字列を返す関数を実装する必要があります。エンコードのルールは次のとおりです。n[encodedString]これは、角括弧内の文字列(encodedString)が、ちょうど n 回繰り返されることを意味します。なお、n は必ず正の整数であることが保証されています。また、入力文字列は常に有効であると仮定できます。つまり、余分な空白は含まれず、角括弧も正しく対応しているものとします。入出力例たとえば、入力が次のような場合を考えてみましょう。const str = 3[a]2[bc];この場合、期待される出力は次のとおりです。

  10. JavaScriptで文字列を切り詰めて末尾に「...」を付ける方法

    JavaScriptでは、文字列を指定した最大文字数に合わせて切り詰め、必要に応じて末尾に省略記号「...」を付ける処理が必要になることがあります。本記事では、そのような関数を実装しながら、考え方とコードの動きをわかりやすく解説します。 求められる仕様 今回作成する関数は、第1引数に文字列、第2引数に最大文字数(数値)を受け取ります。そして、次の3つの条件を満たす必要があります。 文字列が指定された最大文字数よりも長い場合は切り詰め、末尾に「...」を付けて返します。 通常のケースでは、末尾に付ける「...」(3文字)も文字数に含めて計算します。 ただし、指定された最大文字数が3以下の場合

  11. 【JavaScript】オブジェクト配列の要素を別の配列の値で更新・置換する方法

    JavaScript開発では、2つのオブジェクト配列を比較し、特定の条件に一致する要素のプロパティを更新したいケースがよくあります。本記事では、「id」プロパティをキーとして照合し、一方の配列の「name」プロパティをもう一方の配列の値で上書きする方法を、具体的なコード例とともに解説します。 課題の内容 まず、次のような2つのオブジェクトの配列があるとします。 const arr1 = [     {id:124,name:qqq},     {id:589,name:www},    

  12. JavaScriptでネストされた配列の要素数に基づいてオブジェクトの配列をソートする方法

    JavaScriptでは、オブジェクトの中にネストされた配列を含むデータ構造を扱うことがよくあります。例えば、次のような「elements」という配列プロパティを持つオブジェクトの配列を考えてみましょう。const arr = [     { name: Cat1, elements: [     { name: name, id: id } ] }, { name: Cat2, elements: [     { name: name, id: id },  &n

  13. JavaScriptでオブジェクト配列をgroupプロパティ別にグループ化する方法

    問題設定ここでは、車に関する情報を持つ、次のようなオブジェクトの配列を想定します。各オブジェクトは「group」「name」「code」というプロパティを持ち、groupは配列になっている点が特徴です。const arr = [    {       "group":[],       "name": "All Makes",       "code": ""    

  14. JavaScriptの配列から3つの厳密に増加する数(連続・非連続問わず)を見つける方法

    問題の概要 まず、次のような数値の配列を用意します。 const arr = [4, 7, 4, 8, 9, 3]; 求められているのは、このような数値の配列を受け取り、インデックスと値の両方が厳密に増加している3つの数を見つけ出すJavaScript関数です。なお、3つの数は必ずしも隣り合っている必要はなく、離れた位置にあっても構いません。 上記の配列の場合、7・8・9という数値はそれぞれインデックス1・3・4に位置しています。インデックスも値も並び順に沿って大きくなっているため、両方の条件を満たしています。したがって、この配列に対して関数は true を返すべきです。 解決策:貪欲法によ

  15. JavaScriptでサブ配列をマージする方法|共通メールアドレスによるアカウント統合

    JavaScriptでは、複数のサブ配列に分かれたデータを特定の条件をもとにひとつにまとめたい場面があります。本記事では、『同じメールアドレスを含むサブ配列同士をマージする』という定番問題を題材に、Map・Set・再帰処理(DFS)を使った実装方法をわかりやすく解説します。 問題設定 まず、何人かの「名前とメールアドレス」の情報を格納した、配列の中に配列が入ったデータ構造を用意します。 const arr = [     [John, johnsmith@mail.com, john00@mail.com],    &nb

  16. JavaScriptで文字列が加法数(Additive Number)かどうかを判定する方法

    加法数(Additive Number)とは加法数とは、数字列を分割したときに、その各数が「加法シーケンス」を形成できるような数値文字列のことを指します。有効な加法シーケンスには、少なくとも3つの数が含まれている必要があります。最初の2つの数を除き、シーケンス内の後続の各数は、直前の2つの数の和と等しくなければなりません。ここでは、「0」〜「9」の数字のみで構成された文字列が与えられたとき、それが加法数であるかどうかを判定する関数をJavaScriptで実装します。注意: 加法シーケンス内の各数には、先頭にゼロを含めることはできません。そのため、1, 2, 03 や 1, 02, 3 のような

  17. JavaScriptでソート済み配列から要素を高速に検索する最適な方法:二分探索の実装

    ソート済みの配列(昇順・降順は問わない)から特定の値を探す場合、二分探索(バイナリサーチ)が最も最適化された、効率的な検索アルゴリズムとして広く知られています。先頭から順に比較していく線形探索が O(n) の計算量を必要とするのに対し、二分探索は O(log n) で完了するため、大規模なデータセットでも非常に高速に動作します。この記事では、リテラルのソート済み配列からターゲットとなる値を検索する二分探索関数を実装します。さらに、その関数を Array.prototype に追加することで、すべての配列インスタンスから直接メソッドとして呼び出せるようにする方法を紹介します。実装例実際のコードは

  18. JavaScriptで配列から重複する値だけを抽出して新しい配列を作成する方法

    JavaScriptでは、元の配列の中で重複している要素(ユニークではない要素)だけを抽出し、新しい配列を作成したい場面があります。本記事では、リテラルの配列を受け取り、重複する値のみをまとめた新しい配列を返す関数の実装方法をわかりやすく解説します。 やりたいこと たとえば、次のような入力配列があったとします。 const arr = [3, 6, 7, 5, 3]; この場合、重複している値は「3」だけなので、期待される出力は以下の通りです。 const output = [3]; 実装コード この処理を実現するコードは以下のようになります。 const arr = [3, 6, 7, 5,

  19. JavaScriptで配列内の重複要素をグループ化する方法

    JavaScriptでは、配列内に含まれる同じ値の要素を、それぞれ独立したサブ配列にまとめたいケースがあります。例えば、以下のように同じアルファベットが繰り返し含まれる配列を考えてみましょう。const arr = [ a,a,a,a,d,e,e,f,h,h,h,i,l,m,n, r,s,s,t,u,v,y,y ];実現したいことこのような配列を引数として受け取るJavaScript関数を作成します。この関数は、同じ値を持つ要素同士を1つのサブ配列にまとめる必要があります。上記の配列の場合、期待される出力結果は次のようになります。const output = [ [a,

  20. 【JavaScript】BigIntを使って巨大な階乗を計算する方法

    問題の概要任意の数値を1つだけ引数として受け取り、その階乗を計算するJavaScript関数を作成する必要があります。ここで扱うのは、通常のletやvarで宣言したnumber型の変数では正確に保持しきれないような大きな数の階乗です。そこで活躍するのが、JavaScriptに新しく導入されたBigInt型です。最終的に、計算した階乗の値を文字列に変換して返却します。例えば、入力が次の場合:const num = 45;出力は以下のようになります:119622220865480194561963161495657715064383733760000000000実装コードconst num = 4

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:50/297  20-コンピューター/Page Goto:1 44 45 46 47 48 49 50 51 52 53 54 55 56