JavaScript二次元配列の一般的な方法と順序付け

31124 ワード

多次元配列:
  • 多次元配列は実際には配列の配列であり、指数グループの各要素も配列である.
  • JavaScriptにおける二次元配列の列の長さは一意でなくてもよい.
  • 二次元配列の作成:
  • 		//         
            var multiArr=[[1,2,3,4],[5,6,7],[8,9]];
            //    4 6      
            var muArr = new Array(4);
            for(var i = 0;i <4;i++) {
                muArr[i] = new Array(6);//    ,                    
            }
    
  • 二次元配列の読み書き:二次元配列の読み書き用配列名[][]の方式で、第一括弧内は行数であり、0から数え、第二括弧内は列数であり、0から数えている.
  • 		var multiArr=[[1,2,3,4],[5,6,7],[8,9]];
    		for(var i=0;i<multiArr.length;i++){
                for(var j=0;j<multiArr[i].length;j++){
                    document.write(multiArr[i][j]+" ");
                }
                document.write("
    "
    );// } /* : 1 2 3 4 5 6 7 8 9 */
    配列の一般的な方法(1)要素の位置を検索します.
  • は、値に基づいて要素の位置を検索する2つの方法があります.indexOf()とlastIndexOf()は、この要素に初めて会ったときのインデックスを返します.
  • indexOf()インデックスの小さいところから検索を打ち出します.lastIndexOf()は反対です.
  • 両の方法はいずれも二つのパラメータがあり、第一のパラメータは検索する要素であり、第二のパラメータはオプションであり、検索の起点インデックスである.
  • の2番目のパラメータは負であり、−1は下から1番目の要素を表し、−2は下から2番目の要素を表し、順次類推する.
  • 		//			  0    1   2   3   4   5   6   7   8   9
    		var search = ["a","b","a","b","c","d","a","a","b","a"];
            //      
            console.log(search.indexOf("a"));//  0
            //      
            console.log(search.lastIndexOf("a"));//  9
            console.log(search.indexOf("b",2));//  3,    2     ,   b   3 
            console.log(search.indexOf("a",-1));//  9,     8       ,   a   9 
            console.log(search.lastIndexOf("a",-2));//  7,    7      ,   a    7 
    
    (2)配列の結合
  • concat()は、配列a.co ncat(配列b)の形をしており、統合後に新しい配列に戻り、新しい配列は配列aの後に配列bを接続するが、配列aおよびbは変化しない.
  • 		var a = [1,2,3];
            var b = [4,5,6];
            var c = a.concat(b);//        
            console.log(c);//  [1,2,3,4,5,6]
    
    (3)配列反転
  • reverse()は、配列反転を実現し、パラメータなしで倒置後の配列に戻り、同時にこの方法を呼び出す配列も倒置される.その場で逆置と呼ぶ.
  • 		var a = [1,2,3,4];
            var b = a.reverse();
            console.log(a);//  [4,3,2,1]
            console.log(b);//  [4,3,2,1]
    
    (4)要素結合
  • join()は、配列のすべての要素を連結して文字列を構成し、パラメータは要素間の区切り記号であり、デフォルトのカンマは書かれていない.
  • 		var sArray = ["June","July","August"];
            console.log(sArray.join());//  June,July,August
            console.log(sArray.join("+"));//  June+July+August
    
    (5)要素の並べ替え
  • sort()はデータ要素の並べ替えを実現して、このパラメータの表示要素を持たないでASCIIテーブルによって小さいから大きいまで並べ替えます.
  • バンドパラメータの昇順配列は、次のようになっています.a,bは2つのパラメータであり、a−bに戻り、昇順に並べられます.b-aを返し、降順に並べます.配列名.sort(function(a,b){return a-b;/昇順配列}
  • パラメータの降順配列は、配列名.sort(a,b){return b-a;/降順配列};
  • 		var stringArray = ["a","ab","b","aa"];
            stringArray.sort();
            console.log(stringArray);//  ["a","aa","ab","b"]
            //       ,sort()             
            
    		var arr = [1,2,10,5,12];
            arr.sort();
            console.log(arr);//  [1,10,12,2,5]
            arr.sort(function(a,b){
                return a-b;
            });
            console.log(arr);//  [1,2,5,10,12]
            arr.sort(function(a,b){
                return b-a;
            });
            console.log(arr);//  [12,10,5,2,1]
    
    (6)サブアレイの抽出
  • slice()は、元の配列を変更しないようにカットされたサブアレイを返す.
  • は、2つの整数パラメータaとbを有し、aは、サブアレイに属する切断の起点を表している.bオプション(bは書かなくても良い)は、カットの終点を表し、この点はサブアレイに属さない.
  • a、bはすべて負の数とすることができ、例えば−1は最後から一番目の位置を表す.
  • 		console.log(arr.slice(0,3));//["a","b","c"]
            console.log(arr.slice(0,-2));//["a","b","c"]
            console.log(arr.slice(4));//["e"]
            console.log(arr.slice(-4));//["b","c","d","e"]
    
    配列並べ替え(1)発泡体の並べ替え
  • 発泡体秩序の外層サイクルiは、発泡体の数を制御し、配列長−1である.
  • 内の循環j初期値は0で、上限はarr.length-iであり、泡が発生するにつれて、これから比較が必要となる配列のインデックス上限は小さい.
  • 		//    
            var arr = [9,5,8,0,2,6];
            var temp;
            var flag = 0;//        
            for(var i = 1;i <=arr.length-1;i++) {//   arr.length-1   
                flag = 0;
                for(var j = 0;j < arr.length-i;j++) {//    
                    if(arr[j]>arr[j+1]) {//    
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                        flag = 1;
                    }
                }
                if(flag == 0)
                    break;//          
               	}
            console.log(arr);//  [0, 2, 5, 6, 8, 9]
    
  • 順序選択
  • は配列を巡回して、次の各最大要素のインデックス値を記録して、最大要素と最後の要素ごとに位置を交換します.
  • 		//    
            var arr = [6,12,3,34,1,56,77,0,2,43];
            var aLength = arr.length;
            var temp;
            var max = arr[0];
            var maxIndex = 0;
            for(var i = 0;i < aLength-1;i++) {//   n-1   
                for(var j = 1;j < aLength-i;j++) {//    
                    if(arr[j] > max) {
                        max = arr[j];
                        maxIndex = j;
                    }
                 }
                //                   
                temp = arr[aLength-i-1];
                arr[aLength-i-1] = arr[maxIndex];
                arr[maxIndex] = temp;
                var max = arr[0];//           0 
                var maxIndex = 0;//        0 
            }
            console.log(arr);//   [0, 1, 2, 3, 6, 12, 34, 43, 56, 77]