JavaScript配列プロトタイプは配列内の同じ要素を削除します

PHPz
リリース: 2023-05-21 11:22:37
オリジナル
422 人が閲覧しました

JavaScript では、配列は非常に一般的に使用されるデータ構造であり、配列の追加、削除、変更、確認などの一連の操作を実行する必要があることがよくあります。実際の開発では、配列内の同じ要素を削除する必要が生じる場合があります。この記事では主に、配列のプロトタイプを使用して配列内の同じ要素を削除する方法を紹介します。

1. 配列プロトタイプ

JavaScript では、各オブジェクトにプロトタイプがあります。プロトタイプは、共有プロパティとメソッドを含む別のオブジェクトを指すオブジェクトのプロパティです。オブジェクトのプロパティにアクセスするとき、オブジェクト自体にそのプロパティがない場合、JavaScript エンジンはプロトタイプ オブジェクト内でそのプロパティを探します。簡単に言えば、プロトタイプはプロパティとメソッドを共有するために使用されるオブジェクトです。

配列もオブジェクトであるため、プロトタイプもあります。 JavaScript では、配列のプロトタイプは Array.prototype です。このプロトタイプ オブジェクトには、プッシュ、ポップ、シフト、シフト解除、スライス、スプライスなどの多くの便利なメソッドが含まれています。

次のコードを通じて配列プロトタイプを表示できます:

console.log(Array.prototype);
ログイン後にコピー

出力結果は次のとおりです:

[constructor: ƒ, concat: ƒ, copyWithin: ƒ, fill: ƒ, find: ƒ, …]
ログイン後にコピー

2. 配列プロトタイプを使用して、同じ要素を削除します。配列

JavaScript では、配列から同一の要素を削除する方法がたくさんあります。これを実現するには、filter、reduce、forEach などのメソッドを使用できます。ただし、配列からの同一の要素の削除は、配列プロトタイプのメソッドを変更することでより簡潔に実装できます。

次は、配列内の同じ要素を削除する関数です。この関数は、配列プロトタイプで IndexOf メソッドと splice メソッドを使用します:

Array.prototype.unique = function() {
  for (var i = 0; i < this.length; i++) {
    var index = this.indexOf(this[i], i + 1);
    if (index > -1) {
      this.splice(index, 1);
      i--;
    }
  }
  return this;
}

var arr = [1, 2, 2, 3, 3, 3, 4];
arr.unique(); // [1, 2, 3, 4]
ログイン後にコピー

上記のコードでは、最初に一意の要素を追加します。配列内の同一の要素を削除するために使用されるメソッド。次に、関数内で for ループを使用して配列を走査し、各要素に対して、indexOf メソッドを使用して後続の要素に同じ要素があるかどうかを確認します。同じ要素が見つかった場合は、splice メソッドを使用して要素を配列から削除し、後続の要素がスキップされないようにカウンター i を 1 ずつ減分します。

最後に、重複した要素を削除した後に配列を返します。ご覧のとおり、このメソッドは非常にシンプルで理解しやすく、配列内の同じ要素を効果的に削除できます。

3. まとめ

この記事では、JavaScript 配列のプロトタイプを使用して、配列内の同じ要素を削除する方法を主に紹介します。プロトタイプのメソッドを変更することで、この機能をより簡潔に実装できるため、開発効率が向上します。もちろん、実際の開発においても、コードの実行効率やパフォーマンスを向上させるために、状況に応じて最適な配列の操作方法を選択する必要があります。

以上がJavaScript配列プロトタイプは配列内の同じ要素を削除しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート