重複排除アレイ
インタビューでは、多くの場合、アレイ上に重い行く、関数を記述するためにJSを使用して、質問をしました。
1. ES6新しいセット()モード
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <メタ文字コード= "UTF-8"> <メタ名= "ビューポート"コンテンツ= "幅=装置幅、初期の規模= 1.0"> <メタHTTP-当量= "X-UA-互換性のある"コンテンツ= "IE =エッジ"> <タイトル>ドキュメント</ TITLE> </ HEAD> <BODY> <SCRIPT> 編曲しましょう = [1,1,2,2、 3,3,4,4,5,5 ]。 関数固有の(ARR){ 戻り 新しいセット(ARR)は } せRES = (ARR)ユニーク。 console.log(RES)。 </スクリプト> </ BODY> </ HTML>
2.アレイを使用する方法は、重複排除のindexOfなり
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <METAのcharset = "UTF-8"> <META NAME = "ビューポート"コンテンツ= "幅=デバイス幅、初期スケール= 1.0"> < HTTP-当量=メタ"X - UA互換"コンテンツ= "IE =エッジ"> <タイトル>ドキュメント</タイトル> ヘッド</> <BODY> <SCRIPT> のlet ARR = [1,1,1,2、 3,3,4,11,112,332,332,2,2,3,3,4,4,5,5 ]; / * アイデア: 1.空の配列を作成 ARRを介してデータ・サイクルは、空の配列が決定されているかどうか2.ないプッシュそれをARR値持つ *を/ uniqueArrはせ = []; (arr.mapアイテム =>{ // にconsole.log(アイテム) uniqueArr.indexOf(アイテム)== -1?uniqueArr.push(アイテム): "" ; }) にconsole.log(uniqueArr)。 </スクリプト> </ BODY> </ HTML>
重複排除Arrayオブジェクト
体重を減らすために、オブジェクトのアレイの1.
ログインしてみましょう= console.log.bind(コンソール); せ人 = [ {ID: 0、名称: "小の明" }、 {ID: 1、名称: "小张" }、 {ID: 2、名称: "小李" }、 {ID: 3、名称: "小孙」}、 {ID: 1、名称: "小周" }、 {ID: 2、名称: "小陈" } ]。 せOBJ = {}; 人 = person.reduce((CUR、次)=> { OBJ [next.id] ""?OBJ [next.id] = 真 && cur.push(次); 戻りCUR。// 設定し、デフォルトのタイプ・アレイ・CUR、および空の配列の初期値 ログ(人)。
体重を減らすために、同じ属性値2を保持する文字列の配列の2.
再前に移動します:
再後に移動します:
<!DOCTYPE HTML> <HTML LANG = "EN"> <HEAD> <メタ文字コード= "UTF-8"> <メタ名= "ビューポート"コンテンツ= "幅=装置幅、初期の規模= 1.0"> <メタHTTP-当量= "X-UA-互換性のある"コンテンツ= "IE =エッジ"> <タイトル>ドキュメント</ TITLE> </ HEAD> <BODY> <SCRIPT> みましょう人 = [{ '年齢':41 、 " ID ':12 、 }、 { '年齢' 20 、 'ID':12 、 }、 { '年齢':23 、 'ID':12 、 }、 { '年齢':25 、 'ID':15 、 }、 { '年齢':30 、 'ID':15 、 }、 { '年齢' 12は、 'ID':20である、 } ]; LETログ = (console.log.bindコンソール.log); OBJ LET = {}; OBJ2 LET = {}; LET peon2 = []; せペオン = person.reduce((CUR、NEXT)=> { // ここでも発現されているどのような""の表現のトリプレットここnext'id動作しないこと・デ・再「このプログラムはnext.'idに基づいていることを意味する」; // OBJ [next.id]「」:?OBJ [次へ。IDは、(次の)真&& cur.pushを=。 IF (OBJ [next.id]){ // 存在する場合、配列またはオブジェクトIDが存在する分析、アレイpeon2用に追加され 、peon2.push(次へ) } 他{ OBJ [next.id] = trueに && CUR .push(次へ); } // ログ(OBJ); 返す; CURを }、[])// デフォルトタイプアレイCURを設定して、NULL値が返されたデータ // 再へデータ再び peon2 = peon2。低減((CUR、NEXT)=> { IF (OBJ2 [next.id]){ peon2.push(NEXT); } 他{ OBJ2 [next.id] = trueに && cur.push(次へ)。 } リターンCUR。 }、[]) peon2.map(項目 => { peon.push(項目); }) ログ(ペオン)。 </スクリプト> </ BODY> </ HTML>
詳細情報:
- https://www.cnblogs.com/caideyipi/p/7679681.html
- https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce