Получить массив имен и айдишников через классы
class User { constructor(id, name, sessionId) { this.id = id; this.name = name; this.sessionId = sessionId; } } class UserRepository { constructor(users) { this.users = users; Object.freeze(users); } getUserNames() { return this.users.map(this.name); } getUserIds() { return this.users.map(this.id); } getUserNameById() { return this.users.map(this.sessionId); } } // examples const user = new User('1', 'Jack', 'session-id'); Мне нужно в методы getUserNames, getUserIds и getUserNameById сохранять(получать) массив соответственно имен, айди и имен по айдишнику. Поле users тут - это как бы array[User] - массив объектов пользователей. Помогите доделать код пожалуйста. |
NovichokJS,
class User { constructor(id, name, sessionId) { this.id = id; this.name = name; this.sessionId = sessionId; } } class UserRepository { users = []; constructor(users) { this.users.push(...users); } getUserNames() { return this.users.map(({name}) => name); } getUserIds() { return this.users.map(({id}) => id); } getUserNameById() { return this.users.map(({sessionId}) => sessionId); } } // examples const user = new User('1', 'Jack', 'session-id'); const user2 = new User('2', 'Jack2', 'session-id2'); const repository = new UserRepository([user, user2]); console.log(repository.getUserNames()) |
Спасибо, я там ставил Object.freeze(users) - мне просто нужно запретить мутацию массива users. Как это указать корректно в коде?
|
NovichokJS,
constructor(users) { this.users.push(...users); Object.freeze(this.users) } |
Спасибо!
|
Рони, а как сделать чтобы этот метод getUserNameById() возвращал имя пользователя по его id?
|
понимаю точно что не через map, который нам возвращает массив
|
NovichokJS,
getUserNameById(i) { return this.users.find(({id}) => i === id)?.name; } |
круто, спасибо
|
Часовой пояс GMT +3, время: 18:35. |