javascript - 何时在 JavaScript 对象中使用数组(或混合使用它们)?

标签 javascript arrays object

我经常看到这样的数据结构:

var settings = {
    languages: [
        {
            language: 'English',
            translation: 'English',
            langCode: 'en',
            flagCode: 'us'
        },
        {
            ...
        }
    ]
};

或者这个:

var settings = {
    languages: [
        {
            'en' : {
                language: 'English',
                translation: 'English',
                flagCode: 'us'
            }
        },
        {
            ...
        }
    ]
};

这可以深入很多层次(在一个对象内通常还有包含更多对象的其他数组)...

如果我们不知道某个对象在数组中的位置,则当必须循环数组才能找到某个对象时,添加数组会带来另一层复杂性。但即使知道它的位置,使用起来仍然比使用纯嵌套对象更复杂,在纯嵌套对象中,所有内容都可以使用点表示法轻松引用。就像本例中一样:

var settings = {
    languages: {
        'en' : {
            language: 'English',
            translation: 'English',
            flagCode: 'us'
        },
        'de' : {
            ...
        }
    }
};

那么什么时候在对象中使用数组是个好主意,什么时候不合适呢?

最佳答案

我的简单回答

  • 当您需要key:value对的集合时使用对象({...})

  • 当需要对象集合时使用数组 ([...])

其他差异

  • 数组是有序的,而对象则不然

  • 数组会自动使用数字进行索引,对象需要您指定索引

  • 数组有 .length 属性,对象没有

关于javascript - 何时在 JavaScript 对象中使用数组(或混合使用它们)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25801026/

相关文章:

javascript - jqwidgets 数据网格计数

ios - 测试对象是否在对象数组中

c++ - 在其声明文件之外使用对象 (C++)

c++ - “error: incompatible types in assignment of” 尝试调整对象指针数组的大小时

javascript - 当用户访问页面时如何动态缩放整个 ASP.Net MVC 应用程序

javascript - 按钮按下使 javascript 无意中重新加载页面

javascript - 将用户输入存储为 var

javascript - 在javascript中将数字数组转换为String()

javascript - 添加 n 个数组的值

php - Wordpress 循环 - Meta_Key 的唯一值