【问题标题】:Extract values from a multidimensional array从多维数组中提取值
【发布时间】:2012-09-29 03:35:26
【问题描述】:

我有很多汽车品牌和型号。我已经将品牌提取到一个单独的数组中,但我正在努力提取模型,同时还要保持它们与品牌的关联。

这是数组的一个示例:

var dataa = new Array
        (
            ['Acura','','Integra','Mdx','Rl','Rsx','Slx','Tl','Tsx'],
            ['Aixam','','400','505','600'],
            ['Alfa romeo','','145','146','147','155','156'],
            ['Aston martin','','.','DBS','Db7','Db9']);

如您所见,我有一个包含汽车品牌的多维数组(位于 dataa[0][0]),然后是一个空值,然后是该品牌的模型。

我正在使用此代码来获取汽车制造商:

这给了我每个嵌套数组的第一个值 -> dataa[i][0]:

for (var i = 0; i < dataa.length; i++) {
  document.write(dataa[i][0] + "<br>");
}

我的问题从这里开始。

我无法提取所有模型并将它们分配给正确的汽车制造商。我尝试过 for 循环、带刹车的循环、while 循环和带条件语句的循环,但我做不到。

请在这里给我一些建议。 jQuery 或其他一些技术会帮助我吗?

【问题讨论】:

  • @user1689607 的回答对你很有用。如果您需要在同一结构中关联制造商和模型,则需要创建一个对象数组,其中每个对象包含 1.) 制造商名称和 2.) 模型数组。

标签: javascript loops for-loop multidimensional-array


【解决方案1】:

在你的循环中放置一个循环。

for (var i = 0; i < dataa.length; i++) {
    document.write("<h2>Starting new inner loop!</h2><br>");
    for (var j = 0; j < dataa[i].length; j++) {
        document.write(dataa[i][j] + "<br>");
    }
}

现在对于外部 Array 中的每个 Array,您都在执行单独的循环。

Here's a demo

【讨论】:

  • 我已经尝试过了,但在第二个循环中我将 j 更改为 2 而不是 0 以仅提取汽车模型。而且我不知道使用什么代码将所有模型与品牌相关联。
  • j 变量不应从 0 开始,因为第一个字段是汽车制造商。
  • @user1729923:它们已经在数组中关联。直接使用索引0,然后像你一样在2开始循环。
  • @user1729923:给我一分钟。禁用它们更容易,但隐藏它们时会有浏览器怪癖。我马上就回来。
  • 哇,我没想到会这么长。非常感谢,我将使用它,我将阅读有关该主题的更多信息。再次感谢您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-19
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多