如果我定义像这样的多维javascript数组
//var myStack = new Array(3);
// *** edit ***
var myStack = {};
一次插入一个值的最佳方法是什么?
myStack[1][1][0] = myValue;
我想读取数据库并一次写一个值。例如:
myStack[recordNo][1]['FirstName'] = myValue;
答案 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;
}
}
}