【问题标题】:Two dimensional array in Javascript, [num][value1, value2, value3]Javascript 中的二维数组,[num][value1, value2, value3]
【发布时间】:2012-02-19 13:08:14
【问题描述】:

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

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] 抛出错误。我不确定我是否或如何做这样的事情。谢谢。

【问题讨论】:

    标签: javascript


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多