JSベース——配列API(1)


配列API(1) (後進先出)
スタックの上部に挿入と除去を行います.pushpop方法を結合(元の配列を変更する)
  • 配列の最後に挿入することができます.push
    var arr=[1,2,3];
    var m=arr.push('m');
    console.log(m);  // 4 ,    ,           
    console.log(arr); // [1, 2, 3, "m"]
  • 最後の項目pop
    var arr=[1,2,3];
    var n=arr.pop();
    console.log(n);  // 3       ,      
    console.log(arr); // [1, 2]
  • を除去します. (先入先出)
    使用shift方法(配列の最初の項目を除去し、アイテムを返し、時間配列の長さを1つ減らします.)pushは、操作キューのように配列を操作することができる(元の配列が変更される).
  • は、配列の最初の項目を除去し、shift
    var arr=[1,2,3];
    var s=arr.shift();
    console.log(s);  // 1      ,      
    console.log(arr); // [2, 3]
  • に戻る.
  • は、配列の前端に任意の項目を追加し、新しい配列の長さunshiftを返し、unshiftおよびpopを使用して、反対の方向からキュー
    var arr=[1,2,3];
    var l=arr.unshift(4,5);
    console.log(l);  // 5          ,           
    console.log(arr); // [4, 5, 1, 2, 3]
  • をシミュレートすることができる. (元の配列が変更されます)
  • reverse
    var arr=[1,2,3];
    arr.reverse();
    console.log(arr); // [3,2,1]
  • sort
    var arr=[1,8,10,22,31,3];
    arr.sort();
    console.log(arr); // [1, 10, 22, 3, 31, 8]
    sortは私達が予想したように並べ替えられていません.sort並べ替え時に、配列の各項目を呼び出します.toString()方法は、配列のすべての項目が数字であっても、文字列に変換して比較するもので、一般的にsort方法は、順序付けを行うために比較関数を受け入れる.
    var arr = [1, 8, 10, 22, 31, 3];
    
    function compare(v1, v2) {
      if (v1 < v2) {
        return -1;
      } else if (v1 > v2) {
        return 1;
      } else {
        return 0;
      }
    }
    arr.sort(compare);
    console.log(arr); // [1, 3, 8, 10, 22, 31]
    //           
    function compare(v1, v2) {
      return v1 - v2;
    }
  • reversesortの戻り値は、順序付けされた配列である.
  • concatは、現在の配列のすべての項目に基づいて新しい配列を作成します.
  • sliceは、現在の配列のうちの1つまたは複数の項目に基づいて新しい配列を作成し、戻り値は新しい配列である(元の配列を変更することができる).
  • は、2つのパラメータ、開始位置、および削除するエントリ数
    var arr = ['a', 'b', 'c']
    //        
    var arr1 = arr.concat([]);
    var arr2 = arr.concat();
    //      
    var arr3 = arr.concat('');
    var arr4 = arr.concat(null, undefined);
    var arr5 = arr.concat('d');
    //     
    var arr6 = arr.concat(['d', 'e', 'f']);
    //         
    var arr7 = arr.concat('m', 'n', ',', ['d', 'e', 'f']);
    //           
    var arr8 = arr.concat(['d', 'e', 'f', ['x', 'y']]);
    //       
    var arr9 = arr.concat(['m', 'n', ','], ['d', 'e', 'f']);
    console.log(arr)  // ["a", "b", "c"]
    console.log(arr1) // ["a", "b", "c"]
    console.log(arr2) // ["a", "b", "c"]
    console.log(arr3) // ["a", "b", "c", ""]
    console.log(arr4) // ["a", "b", "c", null, undefined]
    console.log(arr5) // ["a", "b", "c", "d"]
    console.log(arr6) // ["a", "b", "c", "d", "e", "f"]
    console.log(arr7) // ["a", "b", "c", "m", "n", ",", "d", "e", "f"]
    console.log(arr8) // ["a", "b", "c", "d", "e", "f", Array(2)]
    console.log(arr9) // ["a", "b", "c", "m", "n", ",", "d", "e", "f"]
  • が必要です.
  • は、3つのパラメータ、開始位置、削除するエントリ数(0)、挿入するエントリ
    //       ,  0 
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr1 = arr.splice(3, 0)
    console.log(arr); // ['a', 'b', 'c', '1', '2', 's']
    console.log(arr1); // []
    //       ,  2 
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr2 = arr.splice(3, 2)
    console.log(arr); // ["a", "b", "c", "s"]
    console.log(arr2); //  ["1", "2"]
    //          
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr3 = arr.splice(7, 1)
    console.log(arr);
    console.log(arr3);
    //                
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr4 = arr.splice(-2, 2)
    console.log(arr); // ["a", "b", "c", "1"]
    console.log(arr4); // ["2", "s"]
    //     ,    
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr5 = arr.splice(2,-2)
    console.log(arr); // ["a", "b", "c", "1", "2", "s"]
    console.log(arr5);// []
  • が必要です.
  • は、3つのパラメータ、開始位置、削除するエントリ数(0)、挿入するエントリ
    //    ,  
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr2 = arr.splice(2,0,'x')
    console.log(arr); //["a", "b", "x", "c", "1", "2", "s"]
    console.log(arr2); // []
  • が必要です.
    (元の配列は変更されません) が検索する項目と開始位置(オプション)、検索する項目は===は動作して、完全に等しくなければならなくて、探し出して、位置の下付きを返して、探し当てていないで、帰ります.-1
  • indexOfは、配列開始位置から
  • を後方に検索する.
  • lastIndexOfは、配列の最後から前へ
  • を検索する. (元の配列は変更されません) の2つのパラメータは、各項目で実行される関数と、その関数を実行するためのスコープオブジェクト(オプション)に影響を与える.thisの値.
  • someは、配列の各々に所定の関数を実行し、いずれもtrueに戻るとtrueに戻る.
  • everyは、配列の各々に所定の関数を実行し、各項目がtrueに戻るとtrueに戻る.
  • filterは、配列内の各項目に所定の関数を実行し、trueの項からなる行列を返します.
    //      
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr1 = arr.splice(2,2,'x')
    console.log(arr); // ["a", "b", "x", "2", "s"]
    console.log(arr1); //  ["c", "1"]
    //     
    var arr = ['a', 'b', 'c', '1', '2', 's']
    var arr3 = arr.splice(2, 0, 'x', [1, 2, 3])
    console.log(arr); // ["a", "b", "x", Array(3), "c", "1", "2", "s"]
    console.log(arr3); // []
  • forEachは、行列内の各項目に所定の関数を実行し、この方法には戻り値がない.
  • mapは、配列内の各項目に所定の関数を実行し、その関数が呼び出される度に構成される行列を返します.(map関数にreturnがない場合、1つの長さが要素群の値undefinedに等しい配列を返す)
    var arr = [-1, 22, 4, -2, 19, 0]
    var result = arr.filter(function(ele, index, arr) {
      return (ele > 0)
    })
    console.log(arr); // [-1, 22, 4, -2, 19, 0]
    console.log(result); // [22, 4, 19]
  • (ES 5追加)
    二つの方法はすべての項目を繰り返して配列し、最終的な戻り値を構築します.(元の配列は変更されません)
    パラメータ:各項目で呼び出した関数と、正規化の基礎となる初期値(オプション).変更関数は4つのパラメータを受信します.前の値、現在の値、項目の索引と配列オブジェクトです.
  • reduceは、行列の最初の項目から順に最後の
  • まで巡回します.
  • reduceRightは、行列の最後の項目から1つずつ最後の
    var arr = [-1, 22, 4, -2, 19, 0]
    var result = arr.map(function(ele, index, arr) {
      return (ele * 2)
    })
    console.log(arr); // [-1, 22, 4, -2, 19, 0]
    console.log(result); // [-2, 44, 8, -4, 38, 0]
    //           
    var arr = [1, 2, 3, 4, 5]
    var result = arr.reduce(function(pre, cur, index, arr) {
      return pre + cur
    }, 0)
    console.log(arr); //[1, 2, 3, 4, 5]
    console.log(result); //15
  • を巡回します.