配列のes 6新規作成方法と配列のエルゴード

4013 ワード

いくつかの追加方法
1.forEach():最初から最後まで配列を巡回し、要素ごとに指定関数を呼び出します.配列自体を変更します.関数のパラメータは、配列要素、要素の索引、配列自体です.注意したいのは、コールバック関数のthisがwindowを指しています.例:
var arr = [1,2,3,4,5];
arr.forEach(function(element,index,arr1){
     arr1[index] = element+1;
 })      // arr = [2, 3, 4, 5, 6]
2.map():呼び出した配列の各要素は、指定された関数に伝達され、新しい配列を返します.元の配列を変更しません.関数のパラメータは、入ってくる配列要素だけです.例:
var arr = [1,2,3,4,5];
var arr1 = arr.map(function(x){
     return x*x;                     //      ,      ,        。
 })      //arr1 = [1,4,9,16,25]
3.filter():配列要素を特定の関数として実行し、サブセットを返します.入力はtrueまたはfalseを返します.出力はtrueと判定された要素です.
var arr = [1,2,3,4,5];
var arr1 = arr.filter(function(x){
     return x<3;
 })      //arr1 = [1,2]
  • evry()とsome():配列要素に対して指定関数の論理判定を行う.入力は特定の関数で、出力はtrueまたはfalse.everry()は配列内の各動作に与えられた関数です.関数が各項目にtrueを返すと、最後にtrueに戻ります.some()は、行列の各項目に対して指定関数を実行します.この関数がいずれかの項目に対してtrueを返すと、最後にtrueに戻ります.配列内のすべての数が条件を満たしているかどうかを判断するために使用できます.または、いくつかの値が条件を満たしているかどうかを判断します.
  • var arr = [1,2,3,4,5];
    var arr1 = arr.some(function(x){
        return x<3;
    })     //true
    
    var arr = [1,2,3,4,5];
            var arr1 = arr.every(function(x){
                return x<3;
            })     //false
    
    5.reduce():指定された関数を用いて配列要素を組み合わせて単一の値を生成します.入力は2つのパラメータで、最初はプロファイル操作を行う関数です.第二の(オプション)のパラメータは、関数に渡される初期値です.複数のペアで、複数の値を入力して最終的に1つの値index値を返します.1から増加します.第1回の反復:prev=1、curr=2、index=1第2回の反復:prev=3、curr=3、index=2第3回の反復:prev=6、curr=4、index=3第4回の反復:prev=10、curr=5、index=4第5回の反復:prev=5、prev=5回の反復.
    合計:
    var arr = [1,2,3,4,5,5,5];
    var sum = arr.reduce(function(prev,curr,index,array){
        return prev+curr;
    })     //sum = 25
    
    複数の配列を1つの配列に結合します.
    var arr = [1,2,3,4,5],
    arr1 = [6,7,8,9],
     arr2 = [10,11,12];
    var newArr = [arr,arr1,arr2];
    var ret = newArr.reduce(function(a,b){
     return a.concat(b);
    })    // ret = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    
  • indexOf():配列全体の中で所与の値を持つ要素を検索し、見つけられた最初の要素のインデックスを返します.あるいは見つからなかったら-1.lastIndexOf()を返します.
  • var arr = [1,2,3,4,5];
    var arr1 = arr.indexOf(8);     //arr1 = -1
    var arr2 = arr.indexOf(3);     //arr2 = 2
    var arr3 = arr.lastIndexOf(5);   //arr3 = 4
    
  • find()とfindIndex():ここでfind()は、最初の条件に合致するメンバを見つける.戻り値は配列のメンバーです.索引ではありません.***findIndex()はメンバーの位置を返します.リターン-1入力が見つかりませんでした.すべての配列のメンバーは一度にこの関数を実行します.最初の戻り値がtrueのメンバを見つけるまで.コールバック関数は、3つのパラメータ、順番に値、位置、元の配列を受け入れることができます.
  • var arr = [1,2,3,4,5,5,5];
    var arr1 = arr.findIndex(function(x){
        return x == 5;
    });     //arr1 = 4
    var arr2 = arr.indexOf(5);     //arr2 = 4
    
    8.includes():ある配列が所与の値を含むかどうかを示し、第1のパラメータ(必須)は検査すべき値を表し、第2のパラメータ(オプション)は検索の開始位置を表します.indexOfとは対照的に、indexOfは演算子の強い比較を行い、NaNに対する誤判を招く.
    var arr = [1,2,3,4,5,5,5,NaN];
    var arr1 = arr.indexOf(NaN);     //-1
    var arr2 = arr.includes(NaN);     //true
    
    9.fill()充填:使い方:array.fill(「塗りつぶすもの」、開始位置、終了位置)
    配列のエルゴード方法
    配列のエルゴード方法は主に四つのfor、forEach、for...in、for...of 1.for:最も伝統的な方法がありますが、多く説明します.
    var arr = [1,2,3,4];
    for(var i=0; i
    2.forEach:この方法はbreak文を使ってサイクルから飛び出すことができません.また、return文を使ってクローズド関数から戻ることもできません.
    var arr = [1,2,3,4];
    arr.forEach(function(ele,index,array){
        console.log(ele);
    })
    
    3.for…in:この方法は、配列自体の要素が遍歴されるだけでなく、ユーザーによって追加された要素もエルゴードされ、配列のプロトタイプの属性もエルゴードされます.さらに、いくつかの場合、上のコードは任意の順序で配列要素を巡回します.for…inはキーペアを含むオブジェクトを遍歴するために用いられます.配列に対してはそんなに友好的ではありません.
    var arr = [1,2,3,4];
    for(var key in arr){
         console.log(arr[key]);
     }
    
    4.for…of:ES 6で定義された新しいエルゴード配列の方法です.
    var arr = [1,2,3,4];
    for(var val of arr){
         console.log(val);   //        
     }
    
    var arr = [1,2,3,4];
    for (var key of arr.keys){
    console.log(arr[key] );
    }
    
    for ([key,val] of arr.entries){
    console.log(key,val);
    }
    
    5.上記で紹介した他の関数:every()、some()、filter()、map()、reduce()などの方法も配列を巡回することができ、異なる場合には異なる関数を組み合わせて使用する必要があります.