重いのJS配列配列オブジェクト&&

重複排除アレイ

インタビューでは、多くの場合、アレイ上に重い行く、関数を記述するために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

おすすめ

転載: www.cnblogs.com/sauronblog/p/11531277.html