Javascript中的二维数组,[num] [value1,value2,value3]

时间:2012-02-19 13:08:14

标签: javascript

我正在尝试在JS中创建一个可以从我的方法返回的2D数组。我基本上想做这样的事情:

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

第一行msg [] [4]引发错误。我不确定我是否或如何做这样的事情。感谢。

1 个答案:

答案 0 :(得分: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,
    });
}

然后您可以访问例如msg[1].entryID的第二个条目。您可以简单地创建一个数组,而不是创建一个对象,但在我看来,使用对象更具描述性。


JavaScript没有多维数组。你可以创建的是数组(数组......)或对象数组(数组/对象......)。 JavaScript中的数组是动态的,因此无需使用任何大小初始化它们。只需继续添加你想要的任何vaue数组。