将元素添加到多维数组

时间:2011-12-25 17:58:22

标签: javascript arrays

如果我定义像这样的多维javascript数组

//var myStack = new Array(3);  
// *** edit ***
var myStack = {};  

一次插入一个值的最佳方法是什么?

myStack[1][1][0] = myValue;

我想读取数据库并一次写一个值。例如:

myStack[recordNo][1]['FirstName'] = myValue;

4 个答案:

答案 0 :(得分:7)

插入单个值可以通过一行代码完成:

myStack[1] = [,[value]];

或者,啰嗦的方式:

myStack[1] = [];
myStack[1][1] = [];
myStack[1][1][0] = value;

任何一种方法都会使用多个数组填充数组myStack,最后根据问题的要求设置所需的值。

编辑:作为对更新问题的回复,可以使用以下内容:

myStack[recordNo] = [,{'FirstName': myValue}];

答案 1 :(得分:2)

为了避免处理每个维度的数组索引(如果你不注意一秒钟可能会导致错误),你可以使用push方法。它使读取/调试更容易,尤其是当您有大量维度时:

// some constants for navigation purpose
var FIELD_FNAME=0;
var FIELD_LNAME=1;
var FIELD_JOB=2;

// initialize your stack
var myStack=[];

// create a new row
var row = [];

var fname = "Peter";
row.push(fname);

var lname = "Johnson";
row.push(lname);

var job = "Game Director";
row.push(job);

// insert the row
myStack.push(row);

然后就可以像这样迭代:

for (var i=0;i<myStack.length;i++) {
    var row = myStack[i];
    var fname = row[FIELD_FNAME];
    var lname = row[FIELD_LNAME];
    var job = row[FIELD_JOB];
}

答案 2 :(得分:2)

例如:

var varname={};

for (var k = 0; k < result.rows.length; k++) {
   varname[k] = 
   {
     'id': result.rows.item(k).id,
     'name': result.rows.item(k).name
   };
}

答案 3 :(得分:0)

如果要一次将所有值插入到数组中,则可以使用三个for循环:

for (var i = 0; i < 3; i++) {
    for (var j = 0; j < 3; j++) {
        for (var k = 0; k < 3; k++) {
            myStack[i][j][k] = myValue;
        }
    }
}