スタートページJavascript配列

Obj配列・Map配列の定義方法と参照方法


連想配列には、
  従来から、Object として使ってきた Obj配列
  Mapオブジェクトとして設定されたMap配列
があります。
ここでは、それらの配列の
  定義記述の方法
  配列の行名・列名(key)・要素(value)などを参照する方法
を示します。
[テスト]直後に表示
 上に示した「参照方法」を実際に行った結果(検証)  
 参考として、これ以外の多様な参照の方法
[テストソース]別ウインドウに表示
 [テスト]のソースコード
[関数表示」別ウインドウに表示
 Obj配列・Map配列を、先頭行を列名とする通常配列 Tbl配列に変換する関数です。
 [テスト]では、Tbl配列に変換された検証を直後に表示し、
 [関数表示」では、そのソースコードを別ウインドウに表示します。

Obj配列(1次元)
Obj配列(2次元、フラット型)
Obj配列(2次元、構造型)
Map配列(1次元)
Map配列(2次元、構造型)

Obj配列(1次元)

定義方法
   入力 Obj配列 = {氏名:'阿部', 学部:'文学部', 年齢:20}
参照方法
    列数
      Object.keys(Obj配列).length;  // 3
    列名[j]
      Object.keys(Obj配列);         // 列名=['氏名','学部','年齢']  列名[0]='氏名'
    var 要素 = [];
    for (var j=0; j<列数; j++) {
        要素[j] = Obj配列[列名[j]]; // 要素=['阿部','文学部',20]    要素[0]='阿部'
    }

Obj配列(2次元、フラット型)

定義方法
 入力 Obj配列 = [
           {氏名:'阿部', 学部:'文学部', 年齢:20}, 
           {氏名:'井上', 学部:'工学部', 年齢:20}
        ];

参照方法
  行数
      Obj配列.length:    // 2
  列数
      Object.keys(Obj配列[0]).length;  // 3
  列名[j]
      Object.keys(Obj配列[0]);         // 列名=['氏名','学部','年齢']  列名[0]='氏名'
  要素[i][j]
    var 要素 = [];
    for (var i=0; i<行数; i++) {
        要素[i] = [];                               // 要素=[
        for (var j in Object.keys(Obj配列[i])) {    //    ['阿部'.'文学部',20]. ←要素[0]
            要素[i][j] = Obj配列[i][列名[j]];       //    ['井上'.'工学部',20]  ←要素[1]
        }                                           // ]
    }                                               // 要素[0][0]='阿部'

Obj配列(2次元、フラット型)→Tbl配列
 Tbl配列 = Obj2toTbl(Obj配列)
  列名 = Tbl配列["列名"], 要素 = Tbl配列["要素"]

Obj配列(2次元、構造型)

定義方法
    var Obj配列 = {};
        Obj配列['阿部'] = { 学部:'文学部', 年齢:20  }; // 先頭行には全ての列があるとする
        Obj配列['井上'] = { 学部:'工学部', 年齢:20  }; // 順序は任意だが先頭行の順序に合わされる
参照方法
 行数
    Object.keys(Obj配列).length;           // 2
  行名[i]
    Object.keys(Obj配列);                  // 行名=['阿部','井上']  行名[0]='阿部' 
  列数
    Object.keys(Obj配列.[行名[0]]).length; // 2
  列名[j]
    Object.keys(Obj配列[行名[0]]);         // 列名=['学部','年齢']  列名[0]='学部'
  要素[i][j]
    var 要素 = [];
    for (var i=0; i<行数; i++) {
        要素[i] = [];                               // 要素=[
        for (var j in 列名) {                       //    ['文学部',20]. ←要素[0]
            要素[i][j] = Obj配列[行名[i]][列名[j]]; //    ['工学部',20]  ←要素[1]
        }                                           // ]
    }                                               // 要素[0][0]='文学部'

Obj配列(2次元、構造型)→Tbl配列
 Tbl配列 = Obj3toTbl(Obj配列)
  行名 = Tbl配列["行名"], 列名 = Tbl配列["列名"], 要素 = Tbl配列["要素"]


Map配列(1次元)

定義方法
    var Map配列 = new Map( [
        ['氏名', '阿部'],
        ['学部', '文学部'],
        ['年齢', 20]
    ] );
参照方法
  列数
    Map配列.size;      // 3
  列名[j]
    var 列名 = [];
    for (var j of Map配列.keys()) {
        列名.push(j);                    //  列名=['氏名','学部','年齢']
    }                                    //  列名[0]='氏名'
  要素[j]
    var 要素 = [];
    for (var j=0; j<列数; j++) {
        要素[j] = Map配列.get(列名[j]);  // 要素 = ['阿部','文学部',20]
    }                                    // 要素[0]='阿部'

Map配列(2次元、構造型)

定義方法
    var Map配列 = new Map( [
            ['阿部', new Map( [ ['学部', '文学部'], ['年齢', 20] ] ) ],
            ['井上', new Map( [ ['学部', '工学部'], ['年齢', 20] ] ) ]
        ]);
 または
    var Map配列 = new Map();
        Map配列.set('阿部', new Map( [ ['学部', '文学部'], ['年齢', 20] ]));
        Map配列.set('井上', new Map( [ ['学部', '工学部'], ['年齢', 20] ]));
参照方法
 行数
    var 行数 = Map配列.size;  // 2
 行名[i]
    var 行名 = [];
    for (var i of Map配列.keys()) {
        行名.push(i);         //  ['阿部', '井上']
    }                         // 行名[0] = '阿部'
 列数
    var 列数 = Map配列.get(行名[0]).size;    // 2   行名[0]=先頭行に全列があるとした
  列名[j]
   var 列名 = [];
    for (var j of Map配列.get(行名[0]).keys()) {
        列名.push(j);       // ['学部', '年齢']
    }                       //    列名[0] = '学部'
  要素[i][j]
    要素 = [];
    for (var i=0; i<列数; i++) {
        要素[i] = [];
        for (var j of Map配列.get(行名[i]).values()) {
            要素[i].push(j);    //  [ ['文学部', 20], ['工学部', 20] ]       }
        }                           //  要素[0][0] = '文学部'
    }

Map配列(2次元、構造型)→Tbl配列
 Tbl配列 = Map3toTbl(Map配列)
  行名 = Tbl配列["行名"], 列名 = Tbl配列["列名"], 要素 = Tbl配列["要素"]