-
SeleniumにおけるWebDriverのclick()とJavaScriptのclick()の違いと使い方
はじめにSeleniumでは、リンクをクリックする方法として「WebDriver標準のclick()」と「JavaScript Executorを使ったclick()」の2つのアプローチがあります。それぞれ特徴や使いどころが異なるため、両方を理解しておくとテスト自動化の幅が大きく広がります。本記事では、WebDriverのclick()によるリンク操作の基本から、JavaScript Executorを使った代替手段まで、コード例を交えてわかりやすく解説します。WebDriverのclick()でリンクをクリックする方法Selenium WebDriverでリンクをクリックする場合、linkT
-
JavaScriptで配列の先頭にあるゼロ(先行ゼロ)を削除する方法
この課題の要件は非常にシンプルです。数値の配列を受け取るJavaScript関数を作成することです。配列の先頭にゼロが含まれている場合は、その先行ゼロを元の配列から直接削除し、含まれていない場合は何もしないようにします。要件の確認たとえば、入力として次のような配列が与えられたとします。const arr = [0, 0, 0, 14, 0, 63, 0];この場合、期待される出力は以下のとおりです。先頭に連続するゼロだけが取り除かれ、途中や末尾にあるゼロはそのまま残ります。const output = [14, 0, 63, 0];解決策:while文とshift()を使った実装この関数は、i
-
JavaScriptで配列をチャンク化する方法:2要素ずつのサブ配列に分割する
JavaScriptでは、リテラルの配列を受け取り、元の配列の要素をちょうど長さ2のサブ配列に分割した新しい配列を返す関数を実装する必要がある場面があります。元の配列の長さが2で割り切れない場合、最後のサブ配列には1つの要素のみが含まれるようにします。例えば、入力配列が以下の場合:const arr = [1, 2, 3, 4, 5, 6, 7];期待される出力は次のとおりです。const output = [[1, 2], [3, 4], [5, 6], [7]]それでは、この関数を実装してみましょう。実装例この処理を行うコードは以下の通りです。 { const size = 2;
-
JavaScriptで配列の中央要素を見つける方法
本記事では、数値の配列を受け取り、その中央に位置する要素を返すJavaScript関数の作成方法を解説します。 要件 例えば、次のような配列が与えられた場合を考えてみましょう。 const arr = [1, 2, 3, 4, 5, 6, 7]; この場合の出力は 4 になります。また、要素数が偶数の配列の場合は、中央に位置する2つの要素を配列として返します。 実装コード この処理を実現するコードは以下の通りです。 const arr = [1, 2, 3, 4, 5, 6, 7]; const middle = function(){ const half = this.length
-
【JavaScript】数値・文字列・falsy値が混在する配列から最大の数値を取得する方法
概要 数値、文字列、さらには undefined や null、NaN といった falsy な値が混在する配列を受け取り、その中から最大の数値を返す JavaScript 関数を作成してみましょう。 たとえば、入力配列が次のような場合を考えてみます。 const arr = [23, hello, undefined, null, 21, 65, NaN, 1, undefined, hii]; この場合、期待される出力は 65 です。それでは、実際のコードを見ていきましょう。 コード例 const arr = [23, hello, undefined, null, 21, 65, NaN
-
JavaScriptで配列内の奇数回出現する要素を見つける方法
整数の配列が与えられたとき、その中で「奇数回だけ出現している」唯一の要素を見つける関数を作成してみましょう。この問題では、奇数回出現する整数は必ず1つだけ存在することが保証されています。ここでは配列をソートしてから走査するというシンプルなアプローチで解決します。配列を昇順に並べ替えると、同じ値どうしが連続して並ぶため、隣接する要素を比較しながら出現回数をカウントすれば、奇数回出現している要素を効率よく特定できます。アルゴリズムの流れsort((a, b) => a - b) で配列を数値として昇順ソートする前の値(last)と現在の値を比較し、同じならカウント(count)を増やす値が切
-
JavaScriptで配列から負の値だけを削除する方法(popメソッド活用)
複数の値を含む配列 arr が与えられたとします。たとえば、次のような配列です。[-3, 5, 1, 3, 2, 10]ここでの課題は、配列に含まれる負の値をすべて取り除く関数を書くことです。関数の実行が完了した時点で、配列は正の数だけで構成されている必要があります。さらに重要な制約として、一時的な配列を新しく作成してはならないこと、そして要素の削除には pop() メソッドしか使えないことが挙げられます。アルゴリズムの考え方この問題は、次の2段階の処理で解決できます。末尾の負の値を先に除去するwhile ループで、配列の末尾に連続する負の値を pop() で取り除きます。こうすることで、以降
-
JavaScriptで配列を結合して空白をハイフンに置き換えた文字列を作成する方法
JavaScriptで、文字列の配列を受け取り、配列内のすべての文字列を結合したうえで、空白をハイフン「-」に置き換えて、その結果の文字列を返す関数を作成する必要があります。例えば、次のような配列があるとします。const arr = [QA testing promotion , Twitter , Facebook , Test];この場合、期待される出力は以下の通りです。const output = QA-testing-promotion-Twitter-Facebook-Test;それでは、この関数のコードを書いていきましょう。実装例まずは、ループ処理を使って1文字ずつ判定する方法
-
JavaScriptで2つの配列を比較してnullで埋めた新しい配列を生成する方法
JavaScriptでは、2つの配列を比較して第3の配列を作成する関数が必要になることがあります。具体的には、2つ目の配列のすべての要素を新しい配列に格納し、1つ目の配列には存在するが2つ目の配列には欠けている要素の位置には null を挿入します。 具体例 たとえば、次のような2つの配列があったとします。 const arr1 = [f, g, h]; const arr2 = [f, h]; この場合、期待される出力は以下のようになります。 const output = [f, null, h]; 1つ目の配列には g が含まれていますが、2つ目の配列には存在しないため、その位置が nul
-
JavaScriptで配列の要素を別の配列の要素に置き換える方法
JavaScriptでは、splice()メソッドを使うことで、ある配列の要素を別の配列の要素に簡単に置き換えることができます。splice()は、配列の指定した位置から要素を削除しながら、同時に新しい要素を挿入できる強力なメソッドです。splice()による要素の置き換えとは?通常、splice()は第1引数に開始位置、第2引数に削除する要素数、第3引数以降に挿入する要素を指定します。しかし、挿入したい要素がすでに配列形式で存在する場合は、apply()を組み合わせることで、配列の要素をまとめて渡すことができます。コード例var values = [John, David, Bob, Mik
-
JavaScriptの再帰関数を使って数字を降順に表示する方法
再帰(リカージョン)とは、あらかじめ定義した終了条件(ベースケース)に到達するまで、同じ関数を繰り返し呼び出すプログラミング手法です。この記事では、再帰を使って数字を降順に表示するシンプルな例を紹介します。コード例以下のコードでは、引数として受け取った数値を出力した後、条件を満たしている間は自分自身を1つ小さい値で呼び出しています。 0) { recursiveFunction(num - 1); } } recursiveFunction(5);プログラムの実行方法上記のプログラムを実行するには、Node.jsがインストールされた環境で、次のコマンドを使用します。no
-
JavaScriptで「ほぼ昇順」の配列を判定する方法
整数の配列が与えられたとき、その配列から1つ以下の要素を削除することで、厳密に増加する(狭義単調増加の)数列を作れるかどうかを判定する問題を考えてみましょう。問題の定義数列 a0, a1, ..., an が「厳密に増加する」とは、a0 < a1 < ... < an が成り立つことを指します。なお、要素が1つだけの数列も厳密に増加するものとみなします。例1:false になるケースsequence = [1, 3, 2, 1] の場合の出力は次のとおりです。almostIncreasingSequence(sequence) = falseこの配列では、どの要素を1つ削除し
-
JavaScriptで配列内の偶数だけを繰り返し複製する方法
本記事では、配列内に含まれる偶数だけを同じ配列の中で繰り返し(複製)するJavaScript関数の作成方法を解説します。例えば、次のような配列が与えられたとします。const arr = [1, 2, 5, 6, 8];期待される出力この場合、偶数である「2」「6」「8」がそれぞれ2つずつ並び、以下のような結果が得られます。const output = [1, 2, 2, 5, 6, 6, 8, 8];それでは、この処理を実現するコードを見ていきましょう。実装例実際のコードは以下の通りです。 0; i--){ if(arr[i] % 2 === 0){
-
JavaScriptで配列内の数値に最も近い要素のインデックスを取得する方法
JavaScriptでは、配列の中から特定の数値に最も近い要素を見つけ、そのインデックスを取得したい場面がよくあります。例えば、次のような数値の配列があるとします。const arr = [2, 42, 82, 122, 162, 202, 242, 282, 322, 362];要件この配列と、ある数値 n を引数として受け取る関数を作成します。関数は、配列内の要素のうち n に最も近い値を持つ要素のインデックスを返す必要があります。実装例以下のコードでは、各要素と目標値との差の絶対値を計算し、差が最小となる要素のインデックスを順番に追跡していきます。 { let curr = ar
-
JavaScriptで配列内のユニークな要素の出現回数を数える方法
JavaScriptで、配列内に含まれるユニークな(重複していない)要素をすべて数える関数を作成する必要があります。この関数は、配列内の各ユニークな要素とその出現回数を対応付けたオブジェクトを返すように設計します。それでは、具体的なコードを見ていきましょう。実装例:forループを使った方法まずは基本的なforループを使った実装です。const arr = [hi, hello, hi]; const countUnique = arr => { const counts = {}; for (
-
JavaScriptで配列内の「nより大きい・小さい」要素数をカウントする方法
はじめにJavaScriptで配列を扱う際、「指定した数値よりも大きい要素」と「小さい要素」がそれぞれいくつあるのかを一度に把握したい場面があります。本記事では、reduce()メソッドを活用して、この処理を簡潔に実現する方法をご紹介します。問題の概要まず、次のような数値リテラルの配列があるとします。const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];ここで求められるのは、この配列と任意の数値 n を引数として受け取り、n より大きい要素の個数とn より小さい要素の個数をオブジェクトとして返すJavaScript関数を作成することです。それでは、実際のコード
-
JavaScriptで数値の倍数テーブルを配列に書き込む方法
2つの数値(ここでは m と n)を受け取り、m の最初の n 個の倍数を配列として返す JavaScript 関数を作成する必要があります。例えば、m = 4、n = 6 の場合、期待される結果は [4, 8, 12, 16, 20, 24] です。つまり、4 の倍数をちょうど 6 個だけ配列に格納するという処理になります。実装例それでは、この関数のコードを見てみましょう。 { const res = []; for(let i = num1; i <= num1 * num2; i += num1){ res.push(i); }; retu
-
【JavaScript】配列内の要素が指定回数より多く繰り返されていないか検証する方法
JavaScriptで、次の2つの引数を受け取る関数を作成する必要があります。 配列(arr) ― リテラルを格納し、繰り返し要素が含まれている可能性がある配列。 数値(n) ― 要素の繰り返し回数の上限。 この関数は、配列内のどの要素も指定された上限回数(n回)より多く繰り返されていないかどうかを検証します。もし1つでも要素が上限を超えて繰り返されていれば false を返し、すべての要素が上限以内であれば true を返します。 実装のアプローチ まず reduce() メソッドを使って、配列内の各要素の出現回数をオブジェクトとして集計します。次に Object.values() でカ
-
JavaScriptで括弧のバランスを取るための最小挿入回数を求める方法
問題の概要「(」と「)」の2種類の文字のみで構成された文字列が与えられます。この文字列の括弧のバランスを取るために、「(」または「)」を必要な回数だけ挿入する関数を作成します。関数は、バランスを取るために挿入した文字数の最小値を返す必要があります。例えば、次の文字列が与えられた場合を考えてみましょう。const str = ()));この場合、出力は 2 になります。先頭に「((」を追加すれば「((()))」となり、括弧のバランスが取れるためです。アルゴリズムの考え方この問題はスタックを使うことで効率的に解けます。基本的な流れは以下の通りです。空の配列(スタック)を用意します。文字列を先頭から
-
JavaScriptで文字列プロパティの値をもとにオブジェクトの配列を並べ替える方法
次のようなオブジェクトの配列があるとします。const arr = [ { first_name: Lazslo, last_name: Jamf }, { first_name: Pig, last_name: Bodine }, { first_name: Pirate, last_name: Prentice } ];この配列を受け取り、last_nameキーの値をアルファベット順に並べ替えるJavaScript関数を作成する必要があります。それでは、この関数のコードを書いてみましょう。コード例コードは次のとおりです。 { return a.las