假设您有一个非常简单的数据结构:
(personId, name)
…并且您想将其中一些存储在javascript变量中。如我所见,您有三个选择:
// a single object var people = { 1 : 'Joe', 3 : 'Sam', 8 : 'Eve' }; // or, an array of objects var people = [ { id: 1, name: 'Joe'}, { id: 3, name: 'Sam'}, { id: 8, name: 'Eve'} ]; // or, a combination of the two var people = { 1 : { id: 1, name: 'Joe'}, 3 : { id: 3, name: 'Sam'}, 8 : { id: 8, name: 'Eve'} };
如果您要存储(或希望可能拥有)多个“价值”部分(例如,增加他们的年龄等),显然第二或第三种选择是可行的,因此,为了论证,让我们假设在此结构中再也不需要任何数据值了。您选择哪一个,为什么?
编辑 :该示例现在显示最常见的情况:非顺序ID。
每个解决方案都有其用例。
我认为,如果您要定义一对一的关系(例如简单的映射),则第一种解决方案是好的,尤其是当您需要使用该键作为查找键时。
一般而言,第二种解决方案对我来说是最健壮的,如果不需要快速查找键,我可能会使用它:
如果您需要快速的查找时间+上面列出的一些优点(传递数据,自我描述),那么第三种方法将是不错的选择。但是,如果您不需要快速的查找时间,则麻烦得多。同样,无论哪种方式,如果对象中的id与 people中 的id有所不同,都将有出错的风险。