【发布时间】:2014-12-04 13:24:52
【问题描述】:
这基本上是一个 javascript 中的编程风格问题。
有时当我编码时,我发现自己在循环浏览一组数据,例如,一组用户:
var users = [
{
id: 'USER-435',
name: 'James',
email: 'james@gmail.com'
},{
id: 'USER-7897',
name: 'Mark',
email: 'mark@gmail.com'
},{
id: 'USER-2345',
name: 'Harry',
email: 'harry@gmail.com'
}
]
重要提示:此数据来自服务器,需要按顺序排列。
如果我想通过 ID 获取特定用户的属性,我将不得不遍历数组来找到它。
所以我所做的就是遍历数组一次,并在数组中创建属性,以用户 ID 作为其键。这样我就可以使用每个用户的 ID 访问每个用户,而无需遍历数组。因为 = 运算符创建的是对对象的引用而不是副本,所以添加到数组中的每个属性都是引用。
我发现的唯一问题是,如果用户的 ID 是数字,它将成为数组的一部分。因此,如果我们有一个包含 3 个用户的集合,其中一个用户的 ID 是 120,那么会将数组的长度设置为 121。可以快速将属性添加为“id-120”,但感觉不到很干净。
我还可以为集合创建一个单独的对象,而不是在数组中创建新属性,但这会创建一个我需要处理的新对象。
我只是想问问人们对这种模式的看法,以及你是否有更好的方法。
【问题讨论】:
标签: javascript arrays hashmap coding-style hashset