JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで文字列内に2回出現する最初の文字のインデックスを取得する方法

    はじめに本記事では、JavaScriptで文字列を受け取り、その文字列の中で最初に2回出現する文字のインデックスを返す関数の作成方法を解説します。該当する文字が存在しない場合は -1 を返します。アルゴリズムの考え方この問題は Map オブジェクトを活用することで効率的に解決できます。文字列を先頭から順番に走査し、各文字がすでにMapに登録されているかを確認します。登録済みの場合: その文字の初回出現時のインデックスを即座に返します。未登録の場合: 現在の文字とそのインデックスをMapに保存します。走査が終了しても該当する文字が見つからなければ -1 を返します。このアプローチの時間計算量は

  2. JavaScriptで文字列から指定した部分文字列を削除する方法

    JavaScriptでは、メインの文字列と削除したい部分文字列(セパレーター)を受け取り、その部分文字列を取り除いた新しい文字列を返す関数を作成できます。ここでは、removeString() という名前の関数を例に、その実装方法を解説します。たとえば、ハイフン(-)が区切り文字として含まれる次のような文字列を考えてみましょう。this-is-a-stringこの文字列からハイフンをすべて削除したい場合、split() メソッドと join() メソッドを組み合わせることで簡単に実現できます。実装コード以下が removeString() 関数の実装例です。const removeString

  3. JavaScriptでギャップフル数(Gapful数)を判定して最も近い値を求める方法

    ギャップフル数とは?ギャップフル数(Gapful Number)とは、以下の2つの条件を満たす数のことです。3桁以上の数である先頭の桁と末尾の桁をつなげてできる数で、その数を割り切れるたとえば、1053は4桁の数であり、先頭と末尾をつなげた「13」で割り切れるため、ギャップフル数です。同様に、135は3桁の数であり、「15」で割り切れるため、これもギャップフル数に該当します。1053 → 4桁であり、13で割り切れる → ギャップフル数 135 → 3桁であり、15で割り切れる → ギャップフル数やりたいこと今回の目標は、入力として与えられた数に対して、それに最も近いギャップフル数を返すプログ

  4. JavaScriptで文字列内の「i」と「a」を置き換える関数の実装方法

    はじめに本記事では、文字列を唯一の引数として受け取り、その中に含まれるすべての「i」を「!」に、「a」を「@」に置き換えた新しい文字列を返すJavaScript関数の実装方法を解説します。これは、forループで文字列をインデックスを使って1文字ずつ走査し、進みながら新しい文字列を組み立てていく定番の練習問題です。文字列操作の基礎を身につけるのに最適な題材と言えるでしょう。実装コードconst string = Hello, is it raining in Amsterdam?; {  let validatedString = ;  for(let i

  5. JavaScriptで自然順にソート!数値と文字列の混在配列を正しく並べ替える方法

    JavaScriptでは、数値と文字列がひとつの配列に混在することは珍しくありません。たとえば次のような配列に対して、「数値はすべて先頭に集めて昇順に並べ、文字列はその後ろにアルファベット順で並べる」というルールでソートしたい場面があります。 元データと期待される出力 今回対象となる配列はこちらです。 const arr = [1, fdf, afv, 6, 47, 7, svd, bdf, 9]; この配列をソートした際に期待される結果は、以下のとおりです。 [1, 6, 7, 9, 47, afv, bdf, fdf, svd] 注目すべきは、「47」が「9」よりも後ろに配置されている点

  6. 【JavaScript】指定した文字数を超えたスペースで改行を挿入する関数の作り方

    はじめに 長い文字列を見やすいように折り返したい場合、「指定した文字数を超えた時点で、最初に現れるスペースを改行(\n)に置き換える」という処理が役立ちます。この記事では、そのような条件付きで文字列内に改行を追加する関数 breakString() の実装方法を解説します。 関数の仕様 breakString() 関数は、次の2つの引数を受け取ります。 第1引数: 分割対象となる文字列 第2引数: 改行を挿入する基準となる文字数(しきい値) 文字数がしきい値を超えている状態でスペースに到達したとき、そのスペースを改行コードに置き換えるのが基本的なルールです。 アルゴリズムの考え方 処理

  7. 【初心者向け】JavaScriptで配列内の全要素の出現頻度マップを作成する方法

    配列の要素ごとの出現回数をカウントする 数値や文字列を含む配列には、重複した要素が含まれていることがあります。このような場合、各要素が配列の中に何回登場するのか(出現頻度)を調べたいというニーズはよくあります。 この問題に対する最もシンプルで実用的な解決策は、「要素名をキー、出現回数を値」とするオブジェクトを返すことです。これにより、あとから特定の要素の頻度を簡単に参照できるようになります。 実装のアプローチ 処理の流れは以下の通りです。 forEach() ループを使って配列を順番に走査します。 オブジェクト内にその要素のキーがすでに存在する場合は、カウントを1つ増やします。 存在しない

  8. JavaScriptで文字列を大文字・小文字交互に変換する方法(ジグザグパターン)

    JavaScriptでは、文字列内の偶数番目の文字を小文字に、奇数番目の文字を大文字に変換する「ジグザグパターン」の処理が必要になることがあります。ここでは、そのような変換を行う関数の実装方法を解説します。実装する関数の仕様今回作成する関数は、以下の動作を行います。引数として文字列を受け取る偶数番目(インデックスが0, 2, 4…)の文字を小文字に変換奇数番目(インデックスが1, 3, 5…)の文字を大文字に変換変換後の新しい文字列を返すサンプルコード { if (index % 2 === 0) { return word.toLowerCase();

  9. JavaScriptで子オブジェクトのプロパティに基づいて配列をグループ化する方法

    はじめに JavaScriptでは、オブジェクトを格納した配列を、そのプロパティ(特にネストされた子プロパティ)の値に基づいて並べ替えたりグループ化したりする場面がよくあります。本記事では、「type(車体タイプ)」プロパティの値が同じオブジェクト同士を隣り合わせに配置する方法を、コード例とともにわかりやすく解説します。 サンプルデータ 以下は、複数の車種情報を格納したオブジェクトの配列です。各オブジェクトには「company(メーカー)」と「type(タイプ)」という2つのプロパティがあります。 const cars = [ { company: Honda, type: SUV }

  10. JavaScriptの再帰関数でネストされたオブジェクトのキーを検索して値を取得する方法

    JavaScriptでは、プロパティの値としてさらに別のオブジェクトを持つ、入れ子(ネスト)構造のオブジェクトを扱うことがよくあります。ネストは2〜3階層程度のこともあれば、それ以上に深くなるケースもあります。 サンプルオブジェクト 以下のようなオブジェクトを例に考えてみましょう。 const people = { Ram: { fullName: Ram Kumar, details: { age: 31, isEmployed: true } }, Sourav: {

  11. JavaScriptでキープロパティを基準にオブジェクトをグループ化する方法

    JavaScriptでは、ネストされた配列の中にあるオブジェクトを、特定のプロパティ(キー)を基準にまとめてグループ化したい場面がよくあります。本記事では、key と value の2つのプロパティを持つオブジェクトが格納された多次元配列を、キーごとに値を集約した1つのオブジェクトへ変換する方法を解説します。前提となるデータ構造今回扱うのは、同じサイズのサブ配列を多数含む親配列(parentArray)です。各サブ配列の要素は key と value を持つオブジェクトであり、同一のサブ配列内に同じキーを持つオブジェクトは存在しません。また、すべてのサブ配列は同じ n 個のキーのペアを共有して

  12. JavaScriptで配列から最小値を検索して削除する方法

    本記事では、数値の配列を受け取り、その中から最小の要素を見つけて、元の配列を直接変更する形で削除するJavaScript関数の実装方法を解説します。実装コードまずは実際のコードを見てみましょう。const arr = [2, 1, 3, 2, 4, 5, 1];const removeSmallest = arr => {    const smallestCreds = arr.reduce((acc, val, index) => {      let { num, ind }

  13. 【JavaScript】正規表現で大文字の単語を検出し、直前にカンマを挿入する方法

    大文字の前に特定の文字を挿入したいケース文字列処理を行っていると、「文の区切りになっている大文字の単語を検出し、その直前のスペースに区切り文字(カンマなど)を挿入したい」という場面があります。例えば、次のような文字列を考えてみましょう。各文の先頭が大文字になっていますが、文と文の間には区切りがありません。const str = Connecting to server Connection has been successful We found result;この文字列に対して、すべての大文字の直前(スペースの位置)にカンマ「,」を自動的に挿入する関数をJavaScriptで作成してみます。

  14. JavaScriptで英語の序数(1st、2nd、3rd)を生成する方法

    JavaScriptでは、数値を受け取って英語の序数(ordinal number)形式の文字列を返す関数が必要になることがあります。序数とは、「1st(1番目)」「2nd(2番目)」「3rd(3番目)」のように、順序を表す英語の表記のことです。 英語の序数の基本ルール 英語の序数には、以下のようなルールがあります。 1の位が1(ただし11を除く)→「st」(例:1st、21st、101st) 1の位が2(ただし12を除く)→「nd」(例:2nd、22nd) 1の位が3(ただし13を除く)→「rd」(例:3rd、23rd) 上記以外 →「th」(例:4th、11th、12th、13th、11

  15. JavaScriptの再帰処理を使って配列内の最小値を求める方法

    はじめに 本記事では、数値の配列を受け取り、再帰(リカーション)を活用してその中から最小値を返すJavaScript関数の作成方法を解説します。ループ構文を使わずに関数自身を呼び出すことで、簡潔かつエレガントに実装できるのがポイントです。 サンプルデータ まず、今回扱う配列の例を見てみましょう。負の値のみの配列と、正負混在の配列の2種類を用意しました。 const arr1 = [-2, -3, -4, -5, -6, -7, -8]; const arr2 = [-2, 5, 3, 0]; 1つ目の配列では -8、2つ目の配列では -2 が最小値として期待される結果です。 実装コード 以下が

  16. JavaScriptでソート済み配列から最初の一意な要素を見つける方法

    ソート済みの配列から「一度だけ出現する最初の数値」を効率よく見つけたい場面は、実務でもよくあります。本記事では、JavaScriptを使ってソート済み配列内の最初の一意な要素を取得する方法を、具体的なコード例とともに解説します。問題の概要次のようなリテラル(数値)のソート済み配列が与えられたとします。const arr = [32, 32, 63, 63, 63, 75, 75, 86, 87, 88, 89];この配列に対して、重複していない最初の数値を返すJavaScript関数を作成します。一意な数値が存在する場合は、その値を返すすべての要素が重複している(一意な数値が存在しない)場合は

  17. JavaScriptで数値がフィボナッチ数かどうかを判定する方法

    本記事では、JavaScriptを使って「ある数値がフィボナッチ数であるかどうか」を判定する関数の実装方法を解説します。フィボナッチ数とは、フィボナッチ数列(0, 1, 1, 2, 3, 5, 8, 13, 21, …)に含まれる数値のことです。要件数値を引数として受け取り、その数値がフィボナッチ数列に含まれている場合は true を、含まれていない場合は false を返す関数を作成します。実装コードconst num = 2584; const isFibonacci = num => {     if(num === 0 || num ===

  18. JavaScriptで配列内の重複しない要素だけの合計を求める方法

    次のような数値の配列があるとします。 const arr = [14, 54, 23, 14, 24, 33, 44, 54, 77, 87, 77, 14]; この配列の中から一度しか出現しない要素(重複していない要素)だけを取り出し、その合計を計算するJavaScript関数を作成してみましょう。 期待される出力 上記の配列の場合、一度しか出現しない要素は「23、24、33、44、87」の5つです。したがって、出力は以下のようになります。 23 + 24 + 33 + 44 + 87 = 211 実装の考え方 ある要素が配列内で一意かどうかを判定するには、indexOf()と

  19. JavaScriptで配列を2分割し、部分配列の積の和を求める方法

    問題の概要JavaScriptで、長さN(Nは正の偶数)の数値配列を受け取り、その配列をそれぞれN/2個の要素を持つ2つの部分配列(左側と右側)に分割する関数を作成する必要があります。次に、各部分配列内の要素の積を計算し、得られた2つの結果を合計して返します。具体例入力配列が以下の場合を考えてみましょう。const arr = [1, 2, 3, 4, 5, 6]この場合、出力は次のようになります。(1 * 2 * 3) + (4 * 5 * 6) = 6 + 120 = 126実装コードこの処理を実装したコードが以下です。配列のreduce()メソッドを使い、インデックスが配列長の半分未満か

  20. JavaScriptで配列内の隣接する要素のペアのうち、合計が最小となるペアを見つける方法

    はじめに 本記事では、数値の配列を受け取り、隣接する2つの要素で構成されるサブ配列のうち、その合計が配列内のすべての隣接ペアの中で最も小さいものを返すJavaScript関数の作成方法を解説します。 問題の概要 要件は以下の通りです。 引数として数値の配列を受け取ること 元の配列から隣接する2要素のペアを取り出し、その合計が他のすべての隣接ペアの合計よりも小さい場合に、そのペアを返すこと 配列の長さが2未満の場合は、ブール値 false を返すこと 具体例 たとえば、次の入力配列を考えてみましょう。 const arr = [41, 44, -12, 13, -23, 1, 5, -4

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:80/297  20-コンピューター/Page Goto:1 74 75 76 77 78 79 80 81 82 83 84 85 86