如何在jQuery中存储字典字典

时间:2014-02-05 08:58:10

标签: javascript jquery dictionary

我有一个问题,我可以创建一个表格,让我们说“x”行和“y”列。并创建这些表的“n”。 (每个都有不同的行和列。) Table Image

我们可以使用此Excellent Table Creation

创建表格

现在这些表中的每个单元格都包含一些数据。所以我想存储这些数据,然后在我的帖子请求中使用它。

即。我想要的是能够存储

{Table 1 :
         { row1 :
                 {
                   col1:
                        Data1
                 }
         }
}, 
  {Table 1 :
             { row1 :
                     {
                       col2:
                            Data2
                     }
             }
    }, 

如何在Javascript中实现? 如果问题不明确,请评论。

3 个答案:

答案 0 :(得分:4)

只需使用嵌套数组:

var table = [
    [           // Row 1
        Data,   //  cell 1
        Data,   //  cell 2
        Data    //  cell 3
    ],[         // Row 2
        Data,   //  cell 1
        Data,   //  cell 2
        Data    //  cell 3
    ],[         // Row 3
        Data,   //  cell 1
        Data,   //  cell 2
        Data    //  cell 3
    ] // Etc
]

要访问它:

table[0][1]; // Row 1, cell 2

答案 1 :(得分:0)

我不知道我是否正确,但你的意思是这样的?

$(document).ready(function(){
  var matrix_array = []; // the table hashes are kept here

  //matrixA and matrixB are samples
  var matrixA = {
      'row1':{ 
        'col1': 'a', 'col2' : 'a'
      },
      'row2':{ 
        'col1': 'b', 'col2' : 'b'
      },
  };

  var matrixB = {
      'row1':{ 
        'col1': 'c', 'col2' : 'c'
      },
      'row2':{ 
        'col1': 'd', 'col2' : 'd'
      },
  };
  matrix_array.push(matrixA); //push them in order
  matrix_array.push(matrixB);
  console.debug(matrix_array); //see the object in the console

});

希望这会有所帮助。这回答了来自外部文件的动态修改和配置。

迭代它们,使用forEach(function(element){});在数组上,然后按col和row打印每个矩阵。

要访问它们......更好的例子:

matrix_array.forEach(function(matrix){
    console.debug(matrix.row1.col1);  //print the element 1 1 from each matrix
});

答案 2 :(得分:0)

将数据存储在不在对象中的数组中会更好:

var $ tables = $(“table:eq(1)”);

var data = [];

$tables.each(function() {
    var $table = $(this);
    var dataIndex = data.push( [] ) -1; // Table index

    $table.find('tr').each(function(row,v) {
      $(this).find("td").each(function(cell,v) {
        if (typeof data[dataIndex][row] === 'undefined') data[dataIndex][row] = [];
        data[dataIndex][row][cell] = $(this).text();
      });
    });
    console.dir(data);    
});