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

标签 javascript

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

最佳答案

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

关于javascript - Javascript 中的二维数组,[num][value1, value2, value3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9349410/

相关文章:

javascript - 使用 es6 数组方法从数组中提取第一个对象

javascript - jQuery 检查检测,隐藏以前的(包含 jsFiddle)

javascript - 谷歌加一键不起作用(谷歌加一键错误)

javascript - 如何动态设置 c3 图表的 y 轴比例?

javascript - 在 HAML 中包含 CSS 和 Javascript 的缺点

javascript - 传递两个不同参数的更短方法

javascript - 获取元素指令的html结构(或模板)

javascript - MooTools 的虚拟键盘?

javascript - 在 CSS 类中为图像赋值

javascript - 无法解析父节点自定义属性