我在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>},...]
},
...
]
}]
我被告知这种布局更好,因为:&#34;它没有使用对象作为键图,它遵循一种模式&#34;。
我同意它更好,但一般会对对象布局做一些澄清。
用于布置嵌套对象的最佳做法是什么?具有固定键名的基于数组的对象是否更可取?
答案 0 :(得分:1)
第二个例子好多了。
在第一个示例中,您有一个具有不同字符串键的对象列表(不是硬编码的)。这里的问题是,需要转义那些键,即字符串,以删除标签,逗号或其他有问题的无效密钥字符串。
第二个例子要好得多,因为你有一个带有固定硬编码字符串键的对象数组。定义键时,您将始终知道该对象具有哪些属性,以及每个属性具有哪些内容。
你应该总是努力写这样的对象:
test = {
property1 : {},
property2 : [],
property3 : value
}
其中property1,property2和property3由您硬编码,代表其具体内容。