Find Users
by Matthew Keefe
JavaScript
function Users(users) {
var me = this;
this.idMap = {};
this.titleMap = {};
this.users = users;
users.forEach(function(user) {
this.idMap[user.Id] = this.idMap[user.Id] || [];
this.idMap[user.Id].push(user);
this.titleMap[user.Title] = this.titleMap[user.Title] || [];
this.titleMap[user.Title].push(user);
}.bind(this));
}
Users.prototype.findByTitle = function(title) {
return this.titleMap[title];
};
Users.prototype.findById = function(id) {
return this.idMap[id];
};
// Helper functions
function User(id, title) {
return {
Id: id,
Title: title
};
}
var _users = [];
for (var i = 1; i < 1000; i++) {
var id = (i).toString();
var title = "Title" + id;
_users.push(User(id, title));
}
var users = new Users(_users);
console.log(users.findById("2"));
console.log(users.findByTitle("Title10"));