JavaScript多维获取值而不循环

时间:2013-11-04 02:32:28

标签: javascript arrays

我有一个问题,

我在Javascript中有一个如下所示的数组:

var plans = [{
'advanced':[{
    'price':'10',
    'name':'Advanced'
    }],
'basic':[{
    'price':'20',
    'name':'Basic'
    }]
}];

还有一个名为计划的变量,可以是高级或基本等。现在我想显示与变量计划对应的数组中的价格。我如何得到价格?

我尝试过这样的事情:

  • plans.advanced.price
  • 计划['advanced'] ['price']
  • 计划[0]。高级['0']。价格
  • 计划[0] ['高级'] ['0'] ['价格']
PS:我原来是一名PHP开发人员,也许我的PHP影响阻碍了正确的想法,我不知道...

2 个答案:

答案 0 :(得分:5)

像这样访问:plans[0].advanced[0].price

这是错误的做法;只使用JavaScript对象:

var plans = {
    advanced: {
        price: '10',
        name: 'Advanced'
    },
    basic: {
        price: '20',
        name:' Basic'
    }
};

然后您可以使用plans.advanced.price访问它,这更加明确。

请注意,plans.advanced.price与JavaScript中的plans['advanced']['price']相同,没有区别。

JavaScript中的数组只是美化对象 - 因此在JavaScript中没有“关联数组”这样的东西,对象与PHP中的关联数组执行相同的操作。

答案 1 :(得分:2)

你有一些额外的阵列残骸,你有阵中有一个项目,而不是只有对象。

var plans = {
   advanced: {
     price: '10',
     name: 'Advanced'
   },
   basic: {
     price: '20',
     name:' Basic'
   }
};

如果您有var plan ="advanced",则可以plans[plan].price

如果您需要使用数组的当前结构,那么它基本上是相同的,但

var plan ="advanced"

plans[0][plan][0].price

希望有所帮助