for循環を書くことを拒絶して、フロントエンドの技師の必ず掌握しなければならないArayの原生の関数

3384 ワード

身につけるArrayの内蔵方法は、forループを全く書かずに、様々な業務シーンを解決することができます.
Aray.prototype.every関数
文法の説明
  • の最初のパラメータは、コールバック関数callbackfnが必要であり、関数であり、この関数は3つのパラメータを受け入れ、Boolean値、つまりtrueまたはfalse
  • に戻る.
  • every関数は、現在の配列中の各要素を順序付けるときに、callbackfnを呼び出してcallbackfnfalseを返したときに、thisArgを巡回して終了する.
  • の第二パラメータはcallbackfnである.必須ではなく、このパラメータが提供されている場合.このパラメータは、thiscallbackfnに与えられる.提供されていない場合、thisundefined globalである.もちろんnodejsにはcallbackfn オブジェクト
  • があります.
  • コールバック関数everyには、現在巡回されている要素、現在巡回されている要素のコーナースケール、現在巡回されている配列オブジェクト
  • の3つのパラメータがあります.
  • callbackfn関数は、元の配列を変更しないが、この元の配列はeveryにおいて
  • に修正されてもよい.
  • true関数は、現在の要素のみを巡回し、巡回中に追加または削除された要素は巡回されないが、変更された要素は
  • を巡回される.
  • 空行列は、直接every
  • に戻ります.
  • は、コールバック関数が戻っていない場合、falseは第1の要素だけを巡回し、every
  • に戻る.
    コードの例
    //            ,    2
    let arr = [1,2,3];
    let result = arr.every(function(num,index,arr){
        return num<2
    })
    console.log(result); //      false
    ビジネスシーン
    01配列中のデータがすべてある条件を満たすかどうかを判断する.
    一クラスの学生は全部男子でなければなりません.
    // gender:1->   0->  
    let studentList = [
      {
          name:'  ',
          gender:1
      },
      {
          name:'  ',
          gender:1
      },
      {
          name:'    ',
          gender:0
      },
    ]
    
    let result = studentList.every(function(st){
        return st.gender === 1
    })
    console.log(result) //   false
    
    02単純にすべての要素を遍歴し、ある条件を満たすと要素を修正します.
    需要例:クラスの学生が男子であれば、彼が示した色を修正するのは赤色です.
    // gender:1->   0->  
    let studentList = [
      {
          name:'  ',
          gender:1
      },
      {
          name:'  ',
          gender:1
      },
      {
          name:'    ',
          gender:0
      },
    ]
    
    let result = studentList.every(function(st){
        if(st.gender === 1){
          st.color = 'red'
        }
        return true; //       ,    ,         
    })
    console.log(result) //    true
    Aray.prototype.some(calbackfn[,thisArg])
    文法の説明
    some非常タイプで、唯一の違いは第7条と第8条です.
    (7).空の配列であれば、false関数戻りsome(8).コールバック関数が返されていない場合、falseはすべての要素を巡回し、リターンする.everyサンプルコードeveryと同様です.
    ビジネスシーンeveryと同様です.someおよびES6を使用するための注意事項
  • のこの2つの関数は、いずれもie9+の関数であり、ブラウザlodash.jsをサポートしています.もし、低バージョンの互換性が必要であれば、第三者のツールライブラリによって実現する必要があります.例えば、underscore.jsまたは
  • コールバック関数は、リターン値が設定されていない場合、デフォルトはnullに戻ります.つまりfalse
  • に変換されます.
  • コールバック関数はfalseに戻る.everyは巡回を中断することができ、some
  • を巡回し続けることができる.
    Aray.prototype.filter(calbackfn[,thisArg])
    文法の説明
    基本的な文法と前のeveryと同様である唯一の違いは、filterは新しい配列を返します.
    コードの例everyと同様です.
    ビジネスシーン
    クラスの男子学生を濾過します.
    // gender:1->   0->  
    let studentList = [
      {
          name:'  ',
          gender:1
      },
      {
          name:'  ',
          gender:1
      },
      {
          name:'    ',
          gender:0
      },
    ]
    
    let maleList = studentList.filter(function(st){
        return st.gender === 1
    })
    console.log(maleList) //    [/**       **/]
    次号に続く