方法1:
二重層ループ、外側のループ要素、内側のループ中に値を比較
同じ値がある場合はスキップし、ない場合は配列にプッシュします
Array.prototype.distinct = function(){var arr = this, result = [], i, j, len = arr.length;for(i = 0; i
方法2: spliceを使って元の配列を直接操作する
二重層ループ、外側のループ要素、内側のループ中に値を比較
-
値が同じ場合、この値を削除
注意
: 要素を削除した後、配列の長さを 1 減らす必要があります。注意点
:删除元素之后,需要将数组的长度也减1.
Array.prototype.distinct = function (){var arr = this, i, j, len = arr.length;for(i = 0; i
优点:简单易懂
缺点:占用内存高,速度慢
方法三:利用对象的属性不能相同的特点进行去重
Array.prototype.distinct = function (){var arr = this, i, obj = {}, result = [], len = arr.length;for(i = 0; i
方法四:数组递归去重
运用递归的思想
先排序,然后从最后开始比较,遇到相同,则删除
Array.prototype.distinct = function (){var arr = this, len = arr.length; arr.sort(function(a,b){ //对数组进行排序才能方便比较return a - b; })function loop(index){if(index >= 1){if(arr[index] === arr[index-1]){ arr.splice(index,1); } loop(index - 1); //递归loop函数进行去重 } } loop(len-1);return arr; };var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,56,45,56];var b = a.distinct(); console.log(b.toString()); //1,2,3,4,5,6,45,56
方法五:利用indexOf
以及forEach
Array.prototype.distinct = function (){var arr = this, result = [], len = arr.length; arr.forEach(function(v, i ,arr){ //这里利用map,filter方法也可以实现var bool = arr.indexOf(v,i+1); //从传入参数的下一个索引值开始寻找是否存在重复if(bool === -1){ result.push(v); } })return result; };var a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];var b = a.distinct(); console.log(b.toString()); //1,23,2,3
利点
: シンプルで理解しやすい欠点
:メモリ使用量が多く、速度が遅い方法 3: オブジェクトの属性が同じ特性を持つ場合、重複を排除することはできません
function dedupe(array){return Array.from(new Set(array)); } dedupe([1,1,2,3]) //[1,2,3]方法 4: 配列の再帰的重複排除
再帰的なアイデアを使用する 最初の並べ替えを最後から比較し、同じであれば削除します🎜 🎜🎜🎜
let arr = [1,2,3,3]; let resultarr = [...new Set(arr)]; console.log(resultarr); //[1,2,3]🎜🎜方法 5:
indexOf
と forEach
を使用します🎜🎜rrreee🎜🎜方法 6 : ES6 の set🎜🎜Set データ構造を使用します。これは配列に似ており、そのメンバーの値はすべて一意です。 🎜🎜🎜Set 構造体を配列に変換するには Array.from を使用します🎜🎜🎜rrreee🎜🎜🎜 展開演算子 (...) は内部で for...of ループを使用します🎜🎜🎜rrreee🎜🎜🎜以上がjs で配列の重複排除を実現するいくつかの方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Javaandjavascriptaredistinctlanguages:javaisusedforenterpriseandmobileapps、whilejavascriptisforinteractivewebpages.1)javaiscompiled、staticatically、andrunsonjvm.2)javascriptisisterted、dynamsornoded.3)

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1
使いやすく無料のコードエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
