2011-12-25 20 views
1

に要素を追加します。一度に一つの値を挿入するための最良の方法は何ですか?は多次元配列

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

私はデータベースを読み込んで一度に1つの値を書きたいと思っています。例:

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

var myStack = new Array(3); 3次元配列を定義していない* 3つのエントリを持つ1次元配列を作成する –

答えて

0

一度に配列に値のすべてを挿入している場合は、3つの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; 
     } 
    } 
} 
6

は、1行のコードを介して行うことができます:

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

あるいは、長ったらしい方法:

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

どちらの方法でも配列myStackに複数の配列が設定され、最後に質問の要求に従って目的の値が設定されます。

EDIT:更新された質問への応答として、次のように使用することができます。

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

質問が再び更新されるのを見る。真の配列でなければ、 'myStack [recordNo] = {1:{firstName:myValue}};'(またはすべてのキーが動的である場合は 'myStack [recordNo] = {}; myStack [recordNo] [a] = {firstName:myValue};)。 –

0

をそうでない場合はミスにつながる可能性があるすべての次元(の配列インデックスを扱う避けるために注意を払う)、あなたはpushアプローチを使うことができます。例えば

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]; 
} 
1

// 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); 

そして、このように反復することが可能である:それはあなたが次元の偉大な数を持っている場合は特に、それが簡単/デバッグを読み取ることが可能

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 
    }; 
} 
+0

あなたのコードが何をしているのか、なぜそれが問題を解決するのかについての詳しい説明を追加するには、あなたの投稿を編集することを検討してください。ほとんどの場合、コードが含まれていても(たとえそれが機能していても)、OPが問題を理解するのに役立たない場合があります。 – SuperBiasedMan