JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで配列の先頭にあるゼロ(先行ゼロ)を削除する方法

この課題の要件は非常にシンプルです。数値の配列を受け取るJavaScript関数を作成することです。

配列の先頭にゼロが含まれている場合は、その先行ゼロを元の配列から直接削除し、含まれていない場合は何もしないようにします。

要件の確認

たとえば、入力として次のような配列が与えられたとします。

const arr = [0, 0, 0, 14, 0, 63, 0];

この場合、期待される出力は以下のとおりです。先頭に連続するゼロだけが取り除かれ、途中や末尾にあるゼロはそのまま残ります。

const output = [14, 0, 63, 0];

解決策:while文とshift()を使った実装

この関数は、indexOf(0)を使って配列の先頭要素が0かどうかを判定し、0である限りshift()で先頭要素を削除し続けることで実現できます。

コード例

const arr = [0, 0, 0, 14, 0, 63, 0];
const removeLeadingZero = arr => {
    while (arr.indexOf(0) === 0) {
        arr.shift();
    };
};
removeLeadingZero(arr);
console.log(arr);

出力結果

コンソールには次のように表示されます。

[ 14, 0, 63, 0 ]

コードの解説

  • arr.indexOf(0) === 0:配列内で最初に現れる0のインデックスが「0(=先頭)」であるかどうかを判定します。つまり、配列の先頭が0である場合のみtrueになります。
  • arr.shift():配列の先頭の要素を削除し、残りの要素を前に詰めます。この操作は元の配列を直接変更(破壊的変更)します。
  • whileループ:先頭が0である限り削除を繰り返すため、連続する複数の先行ゼロにも対応できます。

なお、この処理では配列の途中や末尾にあるゼロは削除されず、あくまで「先頭に連続するゼロ」のみが対象となる点に注意してください。先行ゼロがない配列を渡した場合、ループは一度も実行されず、配列はそのままの状態で返されます。

  1. JavaScriptのArray.prototype.map()メソッドの使い方を徹底解説

    Array.prototype.map()とは? JavaScriptのArray.prototype.map()メソッドは、配列の各要素に対してコールバック関数を実行し、その戻り値から新しい配列を作成するためのメソッドです。元の配列は変更されないため、安全にデータ変換を行いたい場合に非常に便利です。 構文 arr.map(function callback(currentValue[, index[, array]]) 各引数の意味は以下のとおりです。 currentValue:現在処理している要素の値 index(省略可能):現在処理している要素のインデックス番号 array(省略可能

  2. JavaScriptの基本配列メソッド解説!push・pop・shift・unshift・spliceの使い方を実例付きで紹介

    JavaScriptには、配列を操作するための便利な組み込みメソッドが数多く用意されています。その中でも特によく使われるのが、要素の追加や削除を行う以下の5つの基本メソッドです。 JavaScriptの主要な配列メソッド一覧 メソッド説明 Array.push()配列の末尾に要素を追加します。 Array.pop()配列の末尾から要素を取り除きます。 Array.unshift()配列の先頭に要素を追加します。 Array.shift()配列の先頭から要素を取り除きます。 Array.splice()配列内の任意の位置で要素の追加・削除を行います。 これらのメソッドは、配列の