【问题标题】:Jquery/javascript named index array with array association具有数组关联的 Jquery/javascript 命名索引数组
【发布时间】:2015-06-04 13:44:57
【问题描述】:

我想知道是否可以(并且正确)构造一个与其他数组关联的命名索引数组。

例如,

var signOptionSet = [];
signOptionSet['basic'] = ['Sign Width', 'Sign Height', 'Sign Depth', 'Base Material', 'Finish'];
signOptionSet['advanced'] = ['Area', 'Perimeter', 'Lighting'];

如何在 signOptionSet['basic'] 中访问“Sign Height”之类的内容?

【问题讨论】:

    标签: javascript jquery arrays indexing named


    【解决方案1】:

    我想知道它是否可能......

    是的,尽管你使用它的方式,你不会想要一个数组,你只想要一个对象 ({})(见下文)。

    ...(并且正确)...

    有些人会争辩说,使用数组然后向其中添加非索引属性是不正确的。 技术上没有任何问题,前提是您了解某些内容(例如 JSON.stringify)不会看到那些非索引属性。

    如何在 signOptionSet['basic'] 中访问“Sign Height”之类的内容?

    这是您分配给 signOptionSet['basic'] 的数组的第二个条目,即索引 1,因此:

    var x = signOptionSet['basic'][1];
    

    var x = signOptionSet.basic[1];
    

    使用一个对象,并使用属性名称文字,因为这里不需要字符串,看起来像这样:

    var signOptionSet = {
        basic: ['Sign Width', 'Sign Height', 'Sign Depth', 'Base Material', 'Finish'],
        advanced: ['Area', 'Perimeter', 'Lighting']
    };
    

    如果您愿意,可以使用字符串:

    var signOptionSet = {
        "basic": ['Sign Width', 'Sign Height', 'Sign Depth', 'Base Material', 'Finish'],
        "advanced": ['Area', 'Perimeter', 'Lighting']
    };
    

    单引号和双引号在 JavaScript 中都有效(单引号不会在 JSON 中,但这不是 JSON,它是 JavaScript):

    var signOptionSet = {
        'basic': ['Sign Width', 'Sign Height', 'Sign Depth', 'Base Material', 'Finish'],
        'advanced': ['Area', 'Perimeter', 'Lighting']
    };
    

    【讨论】:

      【解决方案2】:

      您访问值 'Sign Height' 就像

      alert(signOptionSet['basic'][1]) // 'Sign Height'
      

      Fiddle

      【讨论】:

      • 这行得通,但 Crowder 的回答对我的查询更完整。
      • @Matthew6 他的回答正是你应该寻求理解的解决你的麻烦。 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多