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



我正试图在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;
}    

第一行消息[][4]抛出一个错误。我不确定我是否或如何能做这样的事。谢谢

如果entryID etc应该是一个字符串,那么我认为您实际上想要的是一个对象数组:

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中的数组是动态的,因此不需要用任何大小初始化它们。只要继续在数组中添加你想要的任何值。

最新更新