-
JavaScriptで<text>要素の値を変数に抽出する方法
JavaScriptで要素の値を変数に抽出するにはSVGの<text>要素のテキスト値を変数に抽出したい場合は、textContentプロパティを使用します。基本的な書き方は以下の通りです。document.getElementById(yourTextIdValue).textContentgetElementById()メソッドで対象の要素をIDから取得し、そのtextContentプロパティを参照することで、要素内のテキストを文字列として変数に格納できます。textContentとinnerHTMLの違いなお、SVG要素の場合はinnerHTMLよりもtextContentを
-
JavaScriptでreverse()メソッドを使わずに数値を反転させる方法
本記事では、数値を受け取り、配列や文字列に変換することなく、桁を逆順に並べ替えた数値を返すJavaScript関数の作成方法を解説します。実装の考え方reverse()メソッドや文字列変換に頼らずに数値を反転させるには、再帰処理と剰余演算(%)を組み合わせるのが効果的です。処理の流れは以下の通りです。num % 10 で最下位の桁(1の位)を取り出すres * 10 + 取り出した桁 で、結果を桁上げしながら積み上げるMath.floor(num / 10) で最下位の桁を取り除いた残りの数値に対し、再帰的に同じ処理を繰り返すnum が 0 になった時点で、積み上げられた res が反転後の数
-
【JavaScript】すべてのサブ配列に共通する文字列だけを抽出する方法
次のような、配列の中にさらに配列が入っているデータ(ネストされた配列)を考えてみましょう。 const arr = [ [foo, bar, hey, oi], [foo, bar, hey], [foo, bar, anything], [bar, anything] ] このような配列を受け取り、すべてのサブ配列に共通して含まれている文字列だけを集めた新しい配列を返す関数を作成します。 実装の考え方 ここで活躍するのが Array.prototyp
-
JavaScriptで配列内の各値の末尾n桁を抽出する方法をわかりやすく解説
次のように、数値リテラルを含む配列があるとします。 const arr = [, 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; ここで求められているのは、この配列と数値 n を引数として受け取るJavaScript関数を作成することです。各要素が n 文字以上の場合は、その末尾の n 文字だけを新しい要素として返し、n 文字未満の場合は元の要素をそのまま返します。 実装のポイント この処理を実現するためには、以下の手順が有効です。 Array.prototype.map() を使って配列の各要素を
-
JavaScriptで配列を検索・更新する方法|POSITIONをキーに別配列からLEVELを追加する
JavaScript開発では、複数の配列に分かれたデータを共通のキーをもとに結合・更新したいケースがよくあります。例えば、一方の配列には「LEVEL」と「POSITION」が含まれ、もう一方には「EMAIL」と「POSITION」が含まれているような場合です。本記事では、「POSITION」の値をキーとして、arr1から対応する「LEVEL」の値を取り出し、arr2の各オブジェクトに新たなプロパティとして追加する関数を実装する方法を解説します。元となる2つの配列今回扱うのは、次のような2つの配列です。let arr1 = [ { LEVEL: 4, POSITION: RGM }, {
-
JavaScriptでオブジェクトの配列を逆順にループして文字列を生成する方法
JavaScriptでは、オブジェクトが格納された配列を末尾から先頭へ向かってループ処理し、その結果をひとつの文字列として組み立てたいケースがあります。本記事では、具体的なサンプルコードを通じて、その実装方法をわかりやすく解説します。 対象となるデータ まず、次のようなオブジェクトの配列を用意します。各オブジェクトには id、Name、RowNumber のプロパティが含まれています。 const data = [ {id:1, Name: Abe, RowNumber: 1 }, {id:2, Name: Bob, RowNumber: 2 }, {id:3, Nam
-
JavaScriptである配列の複数の値が別の配列に存在するかどうかを確認する方法
はじめにJavaScriptでは、2つの数値配列を受け取り、1つ目の配列のすべての要素が2つ目の配列に含まれているかどうかを判定する関数が必要になる場面があります。本記事では、その実装方法を具体的なコード例とともにわかりやすく解説します。まず、例として次の2つの配列を用意します。const arr1 = [34, 78, 89]; const arr2 = [78, 67, 34, 99, 56, 89];この例では、arr1のすべての要素(34、78、89)がarr2の中に存在するかどうかをチェックします。方法:map()とindexOf()を組み合わせる基本的なアプローチとして、map()
-
【JavaScript】配列内の隣接する2要素の合計を求め、新しい配列として返す方法
本記事では、数値の配列を受け取り、元の配列から隣り合う2つの要素を足し合わせた結果を新しい配列として返すJavaScript関数の作成方法を解説します。 やりたいこと 例えば、入力配列が以下のような場合を考えてみましょう。 const arrayOne = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; この場合、期待される出力は次のとおりです。 const newArrayOne = [1, 5, 9, 13, 17]; 0+1=1、2+3=5、4+5=9というように、配列を2要素ずつのペアに区切って合計を計算し、その結果を順番に新しい配列へ格納していきます。 コード例 それ
-
JavaScriptで数値の桁数を数える方法を解説
JavaScriptで数値の桁数を求める方法 この課題の要件はとてもシンプルです。数値を受け取り、その桁数を返すJavaScript関数を作成する必要があります。 例を見てみましょう。 4567 の桁数は 4 423467 の桁数は 6 457 の桁数は 3 それでは、この関数のコードを実際に書いていきましょう。 実装例:再帰を使った解法 const num = 2353454; const digits = (num, count = 0) => { if(num){ return digits(Math.floor(num / 10), ++count);
-
JavaScriptのarray.map()で直前に処理した要素にアクセスする方法
JavaScriptでmap()メソッドを使って配列を処理する際、直前に処理した要素(前の要素)の値を参照したいケースはよくあります。map()のコールバック関数には第2引数として現在のインデックス(index)が渡されるため、このインデックスを利用して元の配列から前の要素にアクセスできます。 次のような配列を例に考えてみましょう。 var details = [ {subjectId:110, subjectName: Java }, {subjectId:111, subjectName: JavaScript }, {subjectId:112, subjectN
-
JavaScriptでドロップダウン(select要素)の選択肢の数を取得する方法
はじめにWeb開発において、ドロップダウンリスト(<select>要素)に含まれる選択肢(<option>)の数を取得したい場面はよくあります。JavaScriptとjQueryを使えば、わずか1行のコードで簡単に実現できます。例として、次のようなドロップダウンリストがあるとします。<select id=lengthListOfOptionDemo> <option>John</option> <option>Mike</option> &
-
JavaScriptで配列内の1を先頭へ、0を末尾へ分離する方法
JavaScriptでは、0・1・その他の数値が混在する配列に対して、「すべての1を配列の先頭に集め、すべての0を末尾に集めたい」という要件が発生することがあります。本記事では、このような配列の分離(セグリゲート)処理を実装する方法を解説します。 実装のポイント 今回のアプローチでは、以下の手順で処理を行います。 slice() で元の配列のコピーを作成し、元データを変更しないようにする 配列を走査し、要素が 0 なら splice() で取り除いた後、push() で末尾へ移動する 要素が 1 なら splice() で取り除いた後、unshift() で先頭へ移動する それ以外の数値は
-
JavaScriptで独自のtoLowerCase()関数を実装する方法
JavaScriptでは、標準のtoLowerCase()メソッドとまったく同じ機能を持つ文字列関数を自作し、既存のメソッドを上書き(オーバーライド)することができます。 この記事では、ASCIIコードを活用して大文字を小文字に変換する、独自のtoLowerCase()関数の実装方法をわかりやすく解説します。 変換の仕組み アルファベットの大文字「A〜Z」はASCIIコードで65〜90に対応しており、小文字「a〜z」は97〜122に対応しています。つまり、大文字と小文字のコード値には32の差があります。このため、大文字のASCIIコードに32を加算すれば、対応する小文字に変換できるというわけで
-
JavaScriptで合計が0になる部分配列が存在するかどうかを判定する方法
正と負の値が混在する数値の配列を受け取り、元の配列の中に合計が0になる部分配列(サブ配列)が存在するかどうかを判定するJavaScript関数を作成する必要があります。関数は、その判定結果に基づいてブール値(true または false)を返す必要があります。アプローチこの問題のアプローチはシンプルです。forループを使って配列を先頭から走査しながら、その要素までの累積和を計算していきます。走査の途中で累積和が0になった場合、あるいは以前に同じ値の累積和が出現した場合は、合計が0になる部分配列が存在することを意味します。逆に、配列の最後までそのような状況が一度も発生しなければ、合計が0になる部
-
JavaScriptで文字列を等しい長さの部分文字列に分割する方法
文字列と数値 n を2つの引数として受け取るJavaScript関数を作成する必要があります(数値nは文字列の長さをちょうど割り切れる値である必要があります)。そして、等しい長さのn個の文字列からなる配列を返します。例例えば、次のようなケースを考えてみましょう。文字列が「helloo」、数値が3の場合 出力は次のようになります: [ho, eo, ll]ここで、各部分文字列は文字列の長さをnで割った文字数を正確に含みます。また、各部分文字列は、元の文字列の先頭と末尾の文字を交互に取り出すことで形成される点が特徴です。それでは、この関数のコードを書いてみましょう。コード例const str =
-
JavaScriptで各科目の最高スコアを持つ配列要素を取得する方法
課題:科目ごとの最高得点者を求める まず、生徒の科目名・氏名・点数を格納したネストされた配列(配列の中に配列がある構造)を用意します。 const arr = [ [Math, John, 100], [Math, Jake, 89], [Math, Amy, 93], [Science, Jake, 89], [Science, John, 89], [Science, Amy, 83], [English, John, 82], [English, Amy, 81], [English, Jake, 72] ]; この配列を受け取り、「1科目につき1つの
-
JavaScriptで同じ文字どうしがn文字離れるように文字列を並べ替える方法
問題の概要繰り返し登場する文字を含む文字列と整数 n を引数として受け取り、すべての同じ文字が互いにちょうど n 文字離れて配置されるような新しい文字列を返す JavaScript 関数を実装します。なお、n は元の文字列の長さよりも小さい値である必要があります。たとえば、次のようになります。入力文字列: accessories n = 3 の場合 期待される戻り値: secrsecisao注意: 条件を満たす並べ替え方は複数存在します。文字の並び順そのものは重要ではなく、「同じ文字が n 文字間隔で配置される」というロジックを満たしていれば、どの出力でも正解として扱われます。アプローチの考え
-
JavaScriptで2つのオブジェクトの差分を抽出する方法
JavaScriptでは、2つのオブジェクト(ネストされた構造でも可)を受け取り、1つ目のオブジェクトに存在するが、2つ目のオブジェクトには存在しないキーとその値のペアを持った新しいオブジェクトを返す関数が必要になるケースがあります。 本記事では、そのような差分抽出関数の実装方法を、具体的なコード例とともにわかりやすく解説します。 実装のポイント 今回の実装では、以下の3つのメソッドを組み合わせて使用します。 Object.keys(): オブジェクトのすべてのキーを配列として取得する reduce(): 配列を走査しながら、結果を1つのオブジェクトに集約する hasOwnProperty
-
JavaScriptで文字列のワイルドカードマッチングを実装する方法
2つの文字列と数値 n を引数として受け取るJavaScript関数を作成してみましょう。この関数は2つの文字列を照合し、同じ文字を含んでいるかどうかを判定します。具体的には、両方の文字列が順序に関係なく同じ文字を含んでいる場合、あるいは互いに含まれない文字が最大 n 個以内である場合には true を返し、それ以外の場合には false を返します。 実装の考え方 まず1つ目の文字列を先頭から順に走査し、各文字が2つ目の文字列に含まれているかどうかを includes() メソッドで確認します。含まれていない文字が見つかるたびにカウンターを1つずつ増やし、カウンターが許容値 n を超えた時点
-
JavaScriptで配列の偶数と奇数を左右に分けて並べ替える方法
本記事では、数値の配列を受け取り、すべての偶数を奇数より左側に、すべての奇数を偶数より右側に配置し直した配列を返すJavaScript関数の実装方法を解説します。実装の考え方Array.prototype.sort()メソッドには比較関数を渡すことができます。この比較関数内で各要素が偶数か奇数かを判定し、偶数を優先的に左へ移動させることで、目的の並び順を実現できます。それでは、実際のコードを見ていきましょう。コード例const arr = [2, 6, 3, 7, 8, 3, 5, 4, 3, 6, 87, 23, 2, 23, 67, 4]; const isEven = num =>