1

使用 jQuery,我试图fileTypes通过使用索引来获取值。我不知道该怎么做,但到目前为止我已经尝试过settings.fileTypes[0]哪个不起作用。任何帮助表示赞赏,谢谢!

    var defaults = {
        fileTypes : { 
            windows: 'Setup_File.exe',
            mac: 'Setup_File.dmg',
            linux: 'Setup_File.tar.gz',
            iphone: 'iPhone App'
        }
    },
        settings = $.extend({}, defaults, options);
4

2 回答 2

4

fileTypes是一个对象,因此,它的属性不能通过索引号访问。

对象不保证任何已定义的顺序,因此如果您需要按索引顺序维护项目,则需要使用数组来代替。

要获得您的示例中的第一项,您可以按名称进行操作:

settings.fileTypes.windows;  // will return 'Setup_File.exe'

要将其存储为可以按索引检索其项目的数组,请尝试以下操作:

var defaults = {
        fileTypes : [
            'Setup_File.exe',
            'Setup_File.dmg',
            'Setup_File.tar.gz',
            'iPhone App'
        ]
    },

settings.fileTypes[0];  // will return 'Setup_File.exe'

或者你可以做一个对象数组,虽然我不认为那是你所追求的:

var defaults = {
        fileTypes : [ 
            {type: 'Setup_File.exe'},
            {type: 'Setup_File.dmg'},
            {type: 'Setup_File.tar.gz'},
            {type: 'iPhone App'}
        ]
    },

settings.fileTypes[0].type;  // will return 'Setup_File.exe'
于 2010-09-10T23:46:59.650 回答
0

如果您的应用程序设计允许,也许您可​​以使用解决方法。它有时对我有用。

var defaults = {
    fileTypes : {
        0: {
          key: 'windows',
          file: 'Setup_File.exe'
        },
        1: {
          key: 'mac',
          file: 'Setup_File.dmg'
        }
    }
};

这样,您可以按索引(按特定顺序)访问第一级元素,如果您需要示例中的键,它们仍然存在。

于 2013-02-12T16:04:38.653 回答