JavaScript

 Computer >> コンピューター >  >> プログラミング >> JavaScript
  1. JavaScriptで配列内の唯一異なる数値を見つける方法

    ほぼすべての要素が同じで、ただ1つだけ異なる値が混ざった配列を受け取り、その「例外的な値」を返すJavaScript関数を作成してみましょう。配列操作の基本となるアルゴリズム課題のひとつで、ループ処理と条件分岐の理解を深めるのに最適な題材です。 問題の概要 たとえば、次のような配列が与えられたとします。すべての要素が 4 である一方、先頭だけが 2 になっています。 [2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] この場合、関数は例外的な値である 2 を返す必要があります。なお、ここでは配列の長さが最低3要素以上あることを前提とします(2要素では「多数派」を判定できないた

  2. JavaScript:配列の全要素の倍数となる最小のn桁の数を見つける方法

    JavaScriptでは、第一引数に数値(桁数n)、第二引数に数値の配列を受け取り、その配列内のすべての要素の倍数となる最小のn桁の数を返す関数を作成する方法を考えてみましょう。 もし条件を満たすn桁の数が存在しない場合は、すべての要素の倍数となる最小の数(最小公倍数)を返します。 問題の概要 例として、次のような配列が与えられたとします。 const arr = [12, 4, 5, 10, 9] この場合、n = 2 の場合も n = 3 の場合も、出力は 180 となります。 これは、180 が配列の全要素(12, 4, 5, 10, 9)で割り

  3. 【JavaScript】3辺の長さから直角三角形を判定する方法

    はじめに本記事では、3つの数値(a、b、c)を引数として受け取り、それらが直角三角形の3辺として成立するかどうかを判定するJavaScript関数の作成方法を解説します。直角三角形であれば true を、そうでなければ false を返すシンプルな実装です。直角三角形の条件とは三角形の3つの内角のうち、1つでも90度の角が存在すれば、その三角形は直角三角形と呼ばれます。そして、ある角が90度になるのは、「最も長い辺の2乗」が「他の2辺の2乗の和」と等しくなる場合です。これはピタゴラスの定理(三平方の定理)として知られる数学の基本法則です。例えば、辺の長さが 3、4、5 の場合は次のようになりま

  4. JavaScriptで配列が狭義単調増加または減少しているかを判定する方法

    はじめに数学において、狭義単調増加関数(strictly increasing function)とは、プロットされる値が常に増加し続ける関数のことを指します。同様に、狭義単調減少関数(strictly decreasing function)とは、プロットされる値が常に減少し続ける関数のことです。本記事では、数値の配列を受け取り、その配列が狭義単調増加または狭義単調減少のいずれかであれば true を返し、そうでなければ false を返すJavaScript関数を作成します。実装の考え方判定には隣接する3つの要素を使います。3点 a, b, c について、(b - a) と (c - b)

  5. JavaScriptで文章が「スムーズ」かどうかを判定する関数を実装する

    スムーズな文章とは?JavaScriptで、ある文章が「スムーズ(smooth)」であるかどうかを判定する関数を作成してみましょう。ここでいうスムーズな文章とは、文中の各単語の最初の文字が、直前の単語の最後の文字と一致している文章のことです。例えば、「this stringt tries sto obe esmooth」という文章は、単語同士のつながりがこの条件を満たしているためスムーズと判定されます。一方、「this string is not smooth」は単語間で文字が一致していない箇所があるため、スムーズではありません。コード例以下が実際のコードです。 { const str

  6. 配列の要素を並べ替えて連続した数列にできるか判定する方法 - JavaScript

    問題の概要 数値の配列を受け取り、その要素を並べ替えることで連続した数列(連番)を形成できるかどうかを判定する JavaScript 関数を作成します。 例 たとえば、次のような配列が与えられた場合 − const arr = [3, 1, 4, 2, 5]; この配列は 1 から 5 までの連続した整数として並べ替え可能なため、出力は次のようになります − true 解決策:ソートを使ったアプローチ 最もシンプルな方法は、配列のコピーを作成して昇順にソートし、隣り合う要素がすべて 1 ずつ増加しているかどうかを確認することです。 コード例 以下がその実装コードです − const arr =

  7. JavaScriptで数値の「加法的永続性」を求める方法

    本記事では、正の整数を受け取り、その加法的永続性(additive persistence)を返すJavaScript関数の実装方法を解説します。加法的永続性とは?整数nの加法的永続性とは、その数を「各桁の数字の合計値」で置き換える操作を、数が1桁になるまで繰り返したときの繰り返し回数のことです。例として、次の数値を見てみましょう。1679583各桁の合計を計算していくと、以下のように変化します。1 + 6 + 7 + 9 + 5 + 8 + 3 = 39   // 1回目 3 + 9 = 12             &n

  8. JavaScriptで文字列が有効な16進数(HEX)コードかどうかを判定する方法

    文字列が有効な16進数(HEX)コードであるためには、「0〜9」の数字と「a〜f」の英字以外の文字を含んでいない必要があります。例えば、以下のようなケースが考えられます。3423ad → 有効なHEXコード 4234es → 無効なHEXコード(eは有効だがsは無効な文字)本記事では、文字列を引数として受け取り、それが有効なHEXコードかどうかを判定するJavaScript関数の実装方法を解説します。実装例:1文字ずつ検証する方法基本的なアプローチは、許容する文字の一覧(レジェンド)を用意し、文字列の各文字がその一覧に含まれているかを順番にチェックすることです。1つでも含まれていない文字があれ

  9. JavaScriptで右側のすべての要素より大きい要素を見つける方法

    本記事では、数値の配列を受け取り、元の配列の中で「右側に存在するすべての要素よりも大きい」要素だけを抽出した部分配列を返すJavaScript関数の作成方法を解説します。例えば、配列 [12, 45, 6, 4, 23, 23, 21, 1] の場合、条件を満たすのは 45、23、21、1 です。最右端の要素は右側に要素が存在しないため、常に条件を満たす点に注意してください。アプローチ:reduceRight()を使った効率的な実装この問題は、配列を右から左へ走査しながら「それまでに見つけた最大値」を記録していくことで、1回の走査(O(n))で解くことができます。JavaScriptでは Ar

  10. JavaScriptで文字列内の各文字のn番目の出現箇所を置き換える方法

    問題の概要JavaScriptで、第一引数に文字列、第二引数に数値n、第三引数に文字cを受け取る関数を作成する必要があります。この関数は、文字列内の各文字のn番目の出現箇所を第三引数で指定された文字に置き換え、その結果の新しい文字列を返すものです。実装のアプローチこの問題は、以下の手順で解決できます。split()メソッドで文字列を1文字ずつ分割するreduceメソッドとMapオブジェクトを使い、各文字の出現回数を追跡しながら結果の文字列を組み立てる各文字がn番目に出現したタイミングで、指定された文字に置き換えるコード例以下が実際のコードです。const str = This is a sam

  11. 数値を展開形式の文字列に変換する方法 - JavaScript

    数値を展開形式で表現するたとえば、数値 124 が与えられ、この数値を入力として受け取り、その展開形式を文字列として返す関数を作成する必要があるとします。124 の展開形式は次のようになります。100+20+4展開形式とは、各桁の数字をその位の値(桁の重み)に分解して表現したものです。百の位、十の位、一の位のそれぞれの値を「+」記号で連結していきます。サンプルコード以下が実際のコード例です。const num = 125;const expandedForm = num => {    const numStr = String(num);&nbs

  12. 【JavaScript】文字列を0と1のバイナリ形式に変換する方法

    本記事では、小文字の文字列を受け取り、a〜m の範囲の文字を「0」、n〜z の範囲の文字を「1」に置き換えた新しい文字列を返す JavaScript 関数の実装方法を解説します。 変換ルールの概要 今回作成する関数は、以下のルールに従って文字列を変換します。 a から m までの英字 → 0 n から z までの英字 → 1 スペースや記号などの特殊文字 → 元の文字をそのまま出力 コード例 実際のコードは以下の通りです。 {     const s = str.toLowerCase();     le

  13. 【JavaScript】配列内の全要素の絶対値の合計を求める方法

    はじめに本記事では、正の数と負の数が混在する配列を受け取り、すべての要素の絶対値の合計を返すJavaScript関数の作成方法を解説します。ポイントは、Math.abs() などの組み込みライブラリ関数に頼らず、自前のロジックだけで実装する点です。問題の概要たとえば、次のような配列が与えられたとします。const arr = [1, -5, -34, -5, 2, 5, 6];この場合、各要素の絶対値はそれぞれ 1、5、34、5、2、5、6 となるため、期待される出力は次のとおりです。58数式で表すと以下のようになります。|1| + |-5| + |-34| + |-5| + |2| + |5

  14. JavaScriptで文字列のすべての文字を次の文字に変換する方法

    はじめに 今回は、文字列を受け取り、その中のすべての英字をアルファベット上で一つ後ろの文字に置き換えるJavaScript関数を作成します。 例えば、次のような文字列が与えられた場合を考えてみましょう。 const str = how are you; この場合、期待される出力は以下の通りです。 const output = ipx bsf zpv; この処理を実装するうえでのポイントは次の2点です。 スペースや記号など、英字以外の文字はそのまま維持する z(または Z)のときは a(または A)へ循環(ローテーション)させる 実装コード 以下が実際のコード例です。 = 65 && cod

  15. 【JavaScript】文字列の各文字を指定回数繰り返す方法を解説

    本記事では、文字列と数値 n を引数として受け取り、元の文字列に含まれるすべての文字をそれぞれ n 回繰り返した新しい文字列を返す JavaScript 関数の実装方法を解説します。要件の確認たとえば、次のような文字列が与えられたとします。const str = how are you;ここで数値 n が 2 の場合、期待される出力は以下のとおりです。const output = hhooww aarree yyoouu;このように、スペースも含めた各文字が指定回数だけ繰り返されていることがわかります。実装例以下は、String.prototype.repeat() メソッドを活用したシン

  16. JavaScriptで文字列から欠けているアルファベットを検索する方法

    問題の概要長さ m の文字列には、本来英語のアルファベットの先頭から m 文字が含まれているはずです。しかし、何らかの理由でそのうち 1 文字だけが抜け落ちてしまいました。つまり、現在の文字列には m-1 文字しか含まれていない状態です。そこで今回のタスクは、このような文字列を引数として受け取り、欠けている 1 文字を見つけ出して返す関数を作成することです。実装コード以下が実際のコード例です −const str = acdghfbekj; {    // 大文字・小文字の揺れをなくすため小文字に統一    con

  17. JavaScriptで偶数を先頭・奇数を後ろにそれぞれ昇順で並べ替える方法

    本記事では、数値の配列を受け取り、すべての偶数を昇順で先頭に並べ、その後ろにすべての奇数を昇順で並べるJavaScript関数の実装方法を解説します。 たとえば、入力配列が次の場合を考えてみましょう。 const arr = [2, 5, 2, 6, 7, 1, 8, 9]; このとき、期待される出力は以下のとおりです。 const output = [2, 2, 6, 8, 1, 5, 7, 9]; サンプルコード 以下が実際の実装コードです。 const arr = [2, 5, 2, 6, 7, 1, 8, 9]; const isEven = num => num % 2 ==

  18. JavaScriptで配列内から重複文字を含まない一意の文字列を検索する方法

    重複した文字を含む可能性がある、次のような文字列の配列があったとします。const arr = [54gdgdfe3, 434ffd, 43frdf, 43fdhnh, wgcxhjny, fsdf34];ここで求められているのは、このような配列を引数として受け取り、重複する文字を1つも含まない最初の要素を返すJavaScript関数を作成することです。もし該当する文字列が1つも存在しない場合は、falseを返す必要があります。コード例以下が実際のコードです。 {    for(let i = 0; i < arr.length; i++){  &

  19. 【JavaScript】指定した範囲内の素数を抽出して合計を求める方法

    課題の概要2つの数値 a と b を引数として受け取り、その間に存在するすべての素数の合計を返すJavaScript関数を作成します。a や b 自身が素数である場合も、計算対象に含めます。実装コードまずは、素数の抽出と合計計算を行う実際のコードを見てみましょう。const num1 = 45; const num2 = 345; // 数値が素数かどうかを判定する関数 const isPrime = n => {   if (n === 1){     return false;   } else if

  20. JavaScriptで2つの数値の桁距離を求める方法

    本記事では、2つの数値 a と b を引数として受け取り、それらの「桁距離」を返すJavaScript関数の実装方法を解説します。桁距離とは桁距離とは、2つの数値の対応する各桁同士の差の絶対値を合計したものです。例として、次の2つの数値を考えてみましょう。345678この場合の桁距離は、以下のように計算されます。|3-6| + |4-7| + |5-8| = 3 + 3 + 3 = 9コード例実際のコードは以下のとおりです。const num1 = 345;const num2 = 678;const digitDistance = (a, b) => {  &nbs

Total 5937 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:93/297  20-コンピューター/Page Goto:1 87 88 89 90 91 92 93 94 95 96 97 98 99