2012-02-19 23 views
0

私は自分のメソッドから返すことができるJSで2D配列を作成しようとしています。Javascriptの2次元配列、[数値] [値1、値2、値3]

var msg[][4] = [][entryID, entryName, entryURL, entryDesc]; 
for (var i = 0, len = bookmarks.length; i < len; i++) { 
    var id = bookmarks[i].getElementsByTagName('id')[0].firstChild.nodeValue; 
    var name = bookmarks[i].getElementsByTagName('name')[0].firstChild.nodeValue; 
    var url = bookmarks[i].getElementsByTagName('url')[0].firstChild.nodeValue; 
    var desc = bookmarks[i].getElementsByTagName('desc')[0].firstChild.nodeValue; 
    msg[i][entryID] = id; 
    msg[i][entryName] = name; 
    msg[i][entryURL] = entryURL; 
    msg[i][entryDesc] = entryDesc; 
}  

[] [4]は、エラーがスローされます最初の行のメッセージ:私は基本的にこのような何かをしたいです。そんなことをどうやってやることができるかわからない。ありがとう。

答えて

3

entryIDなどが文字列であることになっている場合、私はあなたが実際にしたいことは、オブジェクトの配列であると思う:

var msg = []; 
for (var i = 0, len = bookmarks.length; i < len; i++) { 
    msg.push({ 
     entryID: bookmarks[i].getElementsByTagName('id')[0].firstChild.nodeValue, 
     entryName: bookmarks[i].getElementsByTagName('name')[0].firstChild.nodeValue, 
     entryURL: bookmarks[i].getElementsByTagName('url')[0].firstChild.nodeValue, 
     entryDesc: bookmarks[i].getElementsByTagName('desc')[0].firstChild.nodeValue, 
    }); 
} 

あなたはその後、例えばアクセスすることができます2番目のエントリはmsg[1].entryIDです。オブジェクトを作成するのではなく、単純に配列を作成することもできますが、オブジェクトを使用する方がわかりやすいと思います。


JavaScriptには多次元配列がありません。あなたが作ることができるのは、配列の配列(配列の...)またはオブジェクトの配列(配列/オブジェクトの...)です。 JavaScriptの配列は動的なので、どのサイズでも初期化する必要はありません。配列に必要なものを何でも追加してください。

関連する問題