【问题标题】:Angular: object structure best practiceAngular:对象结构最佳实践
【发布时间】:2015-01-13 05:33:52
【问题描述】:

我在 Angular 工作,目前专注于过滤嵌套对象。这是我的对象的结构:

$scope.subjectBin = {
     "Faculty of Engineering": {
           "ECE": [{<course-object>},{<course-object>}],
           "CHEM: [{<course-object>}]
      },
     "Faculty of Science": {
           "BIOL: [{<course-object>},...],
           ...
      },
      ...
}

当我过滤这个对象、构建新功能并在分层手风琴中渲染它时,我想我应该改变这个对象的设计。

有人建议将对象更改为以下内容:

$scope.subjectBin = [{
    faculty: "Faculty of Engineering",
    subjects: [{
        subjectName: "ECE",
        courses: [{<course-object>},{<course-object>}]
        },
        ...
    ]
}, {
    faculty: "Faculty of Science",
    subjects: [{
        subjectBin: "CMPUT",
        courses: [{<course-object>},...]
        },
        ...
    ]
}]

有人告诉我这种布局更好,因为:“它不使用对象作为键映射,它遵循一种模式”。

我同意这样更好,但总体上希望对对象布局进行一些说明。

布置嵌套对象最佳做法是什么?具有固定键名的基于数组的对象更可取吗?

【问题讨论】:

    标签: javascript angularjs javascript-objects


    【解决方案1】:

    第二个例子要好得多。

    在第一个示例中,您有一个具有不同字符串键(非硬编码)的对象列表。这里的问题是,这些键是字符串,需要转义以删除标签、逗号或其他有问题的无效键字符串。

    第二个例子要好得多,因为你有一个带有固定硬编码字符串键的对象数组。定义键时,您将始终知道该对象具有哪些属性,以及每个属性具有哪些内容。

    您应该始终努力编写这样的对象:

    test = {
        property1 : {},
        property2 : [],
        property3 : value
    }
    

    property1、property2 和 property3 由您硬编码,表示它们的具体内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-19
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多