JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで各インデックスの累積合計(累積和)を求める方法

    JavaScriptで累積和を求めるには? 本記事では、数値の配列を受け取り、各インデックスに対して「そのインデックスまでの全要素の合計」を格納した新しい配列を返すJavaScript関数の作成方法を解説します。このような配列は一般に累積和(cumulative sum)と呼ばれます。 例: 入力配列が次の場合: const arr = [1, 2, 3, 4, 5]; 期待される出力は次のとおりです: const output = [1, 3, 6, 10, 15]; ご覧のとおり、出力の各要素は「先頭からその位置までの合計」になっています(1 → 1+2=3 → 1+2+3=6 …)。

  2. JavaScriptで配列内の重複している数値をすべて検索する方法

    JavaScriptでは、同じ要素が何度も含まれている数値の配列を扱うことがあります。この記事では、そのような配列の中から2回以上出現するすべての要素を抽出し、新しい配列として返す関数を作成します。問題の定義作成する関数は、数値の配列を引数として受け取り、その中で1回より多く出現している要素だけを集めた配列を返すものです。例:入力となる配列が次の場合、const arr = [1, 3, 4, 3, 5, 4, 6, 8, 8];期待される出力は次のようになります。const output = [3, 4, 8];この例では、「3」「4」「8」がそれぞれ複数回登場しているため、これらが結果の配

  3. JavaScript:隣接する要素の積の最大値を求めるアルゴリズム

    整数の配列が与えられたとき、隣接する2つの要素の積が最大となるペアを見つけ、その積を返す必要があります。例:入力配列が次の場合:const arr = [3, 6, -2, -5, 7, 3];この場合、出力は 21 になります。これは、[7, 3] のペアの積(7 × 3 = 21)が最も大きいためです。実装例以下がそのコードです:const arr = [3, 6, -2, -5, 7, 3]; const adjacentElementsProduct = (arr = []) => { let prod, ind; for (ind = 1; ind < a

  4. JavaScriptの配列から最も長い文字列をすべて検索・取得する方法

    以下のような文字列の配列があったとしましょう。const arr = [ iLoveProgramming, thisisalsoastrig, Javascriptisfun, helloworld, canIBeTheLongest, Laststring ];このような配列を受け取って、最も長い文字列をすべて取り出すJavaScript関数を作成します。最長の文字列が複数存在する場合も、漏れなくすべて取得できるのがポイントです。関数は最終的に、最長の文字列だけを要素として含む新しい配列を返します。コード例reduceメソッドを使った実装は次のとおりです。 {

  5. JavaScriptで数値の最大の素因数を求める方法を徹底解説

    本記事では、数値を1つだけ引数として受け取り、その数値を余りなく割り切る最大の素数(最大の素因数)を返すJavaScript関数の作成方法を解説します。 問題の概要 作成する関数には、次の要件があります。 引数として数値を1つだけ受け取ること 引数の数値は必ず合成数(2つ以上の約数を持つ数)であることが保証されていること その数値を割り切る最大の素数を見つけて返すこと 具体例 たとえば、引数が 72 の場合、出力は 3 になります。これは、72 を割り切る素数の中で最も大きいものが 3 だからです。 コード例 以下が実際のコードです。 const num = 72; const larg

  6. JavaScriptで2つのn桁の数の積から作られる最大の回文数を求める方法

    まず「9009」という数字について考えてみましょう。この数には特別な性質があります。それは、2桁の数同士の掛け算(91 × 99)によって作られる最大の回文数だということです。 今回の課題は、桁数 n を引数として受け取り、n桁の数同士の積の中で最も大きな回文数を見つけて返すJavaScript関数を作成することです。 解法のアプローチ この問題は総当たりで全ての組み合わせを調べることも可能ですが、効率的に解くために以下の方針を採用します。 n桁の最大値(例:n = 3 なら 999)と最小値(例:100)を求める。 最大値の二乗から降順に候補となる数を調べていく。 各候補について回文数か

  7. JavaScriptで1からnまでのすべての数で割り切れる最小の数を求める方法

    JavaScriptで数値 n を引数として受け取り、1 から n までのすべての整数で余りなく割り切れる最小の数を見つけて返す関数を作成します。この問題は、数学でいう「最小公倍数(LCM)」を 1〜n の範囲で求めることと同じです。 アルゴリズムの考え方 1 から n までの最小公倍数を効率的に求めるには、n 以下の各素数 p に対して「p の累乗のうち n 以下になる最大の値」を求め、それらをすべて掛け合わせます。 例として n = 20 の場合を見てみましょう。20 以下の素数は 2, 3, 5, 7, 11, 13, 17, 19 で、それぞれ使うべき最大の累乗は次のとおりです。

  8. JavaScriptでn番目の素数を効率的に求める方法

    本記事では、数値 n を唯一の引数として受け取り、先頭から数えて n 番目の素数 を見つけて返す JavaScript 関数を作成します。問題の概要たとえば、n = 6 の場合、素数は「2, 3, 5, 7, 11, 13」の順に並ぶため、出力は 13 になります。アルゴリズムのポイントこの実装では、以下の工夫によって計算量を抑えています。すでに見つけた素数だけを使って素数判定を行う(合成数で割る必要はない)判定対象の平方根まで確認すれば十分という性質を利用する2 以降の候補は奇数のみを順に調べることで無駄な処理を省くサンプルコード { let i = 1, p = prime

  9. JavaScriptで「ほぼ増加する数列」を判定する方法|コード例でわかりやすく解説

    厳密に増加する数列とは?数列の中で、すべての後続の要素が直前の要素よりも常に大きい場合、その数列は「厳密に増加する数列(strictly increasing sequence)」であるといえます。たとえば [1, 3, 5, 7] のように、左から右へ向かって値が必ず増えていく並びのことです。今回作成するのは、数値の配列を唯一の引数として受け取るJavaScript関数です。この関数は、「配列から最大でも1つの要素を削除することで、残りの要素が厳密に増加する数列になるかどうか」を判定します。このような状態は一般に「ほぼ増加する数列(almost increasing sequence)」と呼

  10. JavaScriptで文字列の各文字をアルファベット順にN文字分シフトする方法

    JavaScriptで文字列の各文字をN文字分シフトするには?英字のみで構成された文字列が与えられたとき、その各文字を、英語のアルファベット順でN文字後ろの文字に置き換える処理を考えます。例えば n = 1 の場合、「a」は「b」、「b」は「c」というように1つずつ後ろへずらします。末尾の「z」だけは一つ先の「a」に折り返す(ラップアラウンドする)点に注意しましょう。この仕組みは、古典的な暗号手法として知られる「シーザー暗号(Caesar cipher)」と同じものです。具体例入力文字列が「crazy」、シフト数が n = 1 の場合、期待される出力は次のとおりです。alphabeticShi

  11. JavaScriptで配列内の連続するn個の要素の最大合計を求める方法

    JavaScriptでは、数値の配列(第一引数)と数値(第二引数)を受け取り、配列内から連続するnum個の要素を選んだときの合計が最大になる値を見つけて返す関数を作成する必要があります。第二引数(num)は、常に配列の長さ以下であると仮定します。問題の例たとえば、次のような入力が与えられたとします。const arr = [2, 5, 3, 4, 6]; const num = 2;この場合、期待される出力は次のとおりです。const output = 10;これは、隣り合う2つの要素「6」と「4」の合計が10となり、他のどの組み合わせよりも大きいためです。解き方:スライディングウィンドウ技法

  12. JavaScriptで文字列が回文かどうか判定する方法(句読点・大文字小文字への対応)

    与えられた文字列が回文(パリンドローム)であれば true を、そうでなければ false を返すJavaScript関数の作成方法を紹介します。 回文判定時の注意点 文字列が回文かどうかを正しく検証するためには、以下の条件を考慮する必要があります。 句読点や記号は削除し、すべての文字を小文字に変換してから判定を行います。 大文字と小文字は区別しません。たとえば「racecar」「RaceCar」「race CAR」なども、すべて同じ回文として扱います。 コード例 以下が実際のコードです。 { const regex = /[^A-Za-z0-9]/g; str = st

  13. JavaScriptで山括弧(<>)の文字列をバランスさせる関数の実装方法

    山括弧(< と >)だけで構成された文字列が与えられ、すべての括弧が正しく対応するように、文字列の先頭と末尾に必要な括弧を追加する関数を作成する問題を考えてみましょう。 山括弧のマッチ条件とは 山括弧がマッチしている状態とは、すべての < に対して対応する > が存在し、すべての > に対して対応する < が存在することを指します。 たとえば、入力文字列が次の場合: <; 期待される出力 const output = <>; この例では、文字列をバランスさせるために、先頭に < を1つ、末尾に >> を2つ追加しています。 解決のアプローチ

  14. JavaScriptで最小公倍数(LCM)を求める方法|1〜nの全自然数で割り切れる最小の数

    本記事では、数値を1つ引数として受け取り、1からnまでのすべての自然数で割り切れる最小の数を見つけるJavaScript関数の作成方法を解説します。この「最小の数」こそが、数学でいうところの最小公倍数(LCM)です。 問題の例 例えば、n = 4 の場合、出力は 12 になります。これは、12が「1・2・3・4」のすべての数で余りなく割り切れる、最も小さい数だからです。 サンプルコード(総当たり方式) まずは、候補となる数を1つずつ検証していくシンプルな実装から見ていきましょう。 const smallestMultiple = num => { let res = 0;

  15. JavaScriptでn未満のすべての素数の合計を求める方法

    この記事では、数値を1つだけ引数として受け取り、その数より小さいすべての素数の合計を計算して返すJavaScript関数を作成します。 たとえば n = 10 の場合、10未満の素数は 2・3・5・7 の4つなので、関数はそれらの合計である 17 を返す必要があります。 素数判定の考え方 ある数が素数かどうかを判定する最も単純な方法は、2からその数自身まで順番に割り切れるかを確認することですが、これは非効率です。平方根まで試し割りをするだけで十分であり、計算量を大きく削減できます。 理由は、num = a × b と表せる場合、a と b の少なくとも一方は必ず √num 以下になるためです

  16. JavaScriptで文字列配列内の各単語の出現回数を正確に数える方法

    JavaScriptでは、2つの文字列配列を扱う場面があります。1つは単語のリストを表し、もう1つは複数の文を表すものです。例えば、以下のような配列を考えてみましょう。const names= [jhon, parker]; const sentences = [hello jhon, hello parker and parker, jhonny jhonny yes parker];要件ここで求められているのは、これら2つの文字列配列を引数として受け取るJavaScript関数を作成することです。この関数は、最初の names 配列に含まれる各文字列をキーとし、sentences 配列全体

  17. SeleniumでJavaScriptのコンソールエラーを取得・キャプチャする方法

    Seleniumでは、ブラウザ上で発生したJavaScriptのエラーを自動的にキャプチャ(取得)できます。この種のエラーは、通常、開発者ツール(Developer tools)を開いた際に表示される「Console」タブで確認できるものです。エラーの発生原因は、ページ自体の機能的な不具合の場合もあれば、余分なログ出力が積み重なってパフォーマンス問題につながっているケースもあります。テスト自動化の中でこれらのエラーを検知できれば、リリース前の品質チェックに大きく役立ちます。 JavaScriptエラーの取得方法 JavaScriptのエラーは、driverオブジェクトとmanage()メソ

  18. SeleniumでJavaScriptを含む複雑なページの読み込み完了を待つ方法

    Seleniumでは、JavaScriptを多用した複雑なページでも、読み込みが完了するまで適切に待機することができます。ページの読み込み状態を確認するには、JavaScriptのdocument.readyStateメソッドを実行し、戻り値がcompleteになるまで待つのが一般的な手法です。基本構文JavascriptExecutorを使って、現在のページの準備状態(readyState)を取得します。JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript(return document.readyState

  19. 【JavaScript】先頭要素の位置を維持したまま整数配列をソートする方法

    本記事では、数値の配列を受け取り、特定のルールに従って並べ替えるJavaScript関数の実装方法を解説します。並べ替えのルール今回実装する関数は、以下の条件を満たす必要があります。配列の先頭要素(array[0])は元の位置に固定する先頭要素より大きい整数がある場合は、その直後に配置する残りの整数は、最小値から昇順に並べる入力と出力の例例として、次の配列を考えてみましょう。const arr = [10, 7, 12, 3, 5, 6];この場合、期待される出力は以下の通りです。const output = [10, 12, 3, 5, 6, 7];先頭の「10」はそのままの位置に留まり、そ

  20. JavaScriptで3または5の倍数の合計を求める方法

    本記事では、引数として上限値(リミット)となる数値を1つ受け取り、その上限未満の自然数のうち「3または5の倍数」に該当する数値をすべて合計して返すJavaScript関数を作成します。例:上限が10の場合、条件を満たす数は 3、5、6、9 の4つなので、合計は 3+5+6+9 = 23 となります。コード例以下が実際のコードです。const sumOfMultiple = (limit = 10) => { let i, sum = 0; for (i = 3; i < limit; i += 1) { if (i % 3 === 0 || i %

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