Ещё 1 задачка
Тебе нужно показать юзерам кто из их друзей онлайн и готов к общению! Создай функцию whoIsOnline, которая принимает массив объектов friends и определяет кто из них online, offline или away. Если у юзера стоит статус online, но его не было в сети более 10 минут (lastActivity > 10), то можно считать, что его статус отныне away.
Пример входящих данных: [{ username: 'Alice', status: 'online', lastActivity: 10 }, { username: 'Lucy', status: 'offline', lastActivity: 22 }, { username: 'Bob', status: 'online', lastActivity: 104 }] Результат функции whoIsOnline: { online: ['Alice'], offline: ['Lucy'], away: ['Bob'] } Если на сайте нет активных юзеров, то результат должен выглядеть так: { offline: ['Lucy'], away: ['Bob'] } Если ваших друзей совсем нет в чате, то в функцию прийдет пустой массив []. В таком случае нужно вернуть пустой объект {} Вот что я написал: function whoIsOnline(friends) { const users = [ { username: 'David', status: 'online', lastActivity: 10, }, { username: 'Lucy', status: 'offline', lastActivity: 22, }, { username: 'Bob', status: 'online', lastActivity: 104, }]; let usersOnlineNames = ''; for (const item of massivOnlines) { usersOnlineNames += item.username + ', '; } } |
Вы думаете, что форум, что бы изучающим js задачки решать?
Направить можно, но давать готовое решение... Какой тогда смысл в изучении? Что такое massivOnlines? Где он описан? Зачем const users = внутри функции? Где он используется? whoIsOnline(friends) А как используется параметр friends? Попробуйте сами написать условие, что бы определить, что юзверь online |
Mr_Po,
const users = [{ username: 'David', status: 'online', lastActivity: 10, }, { username: 'Lucy', status: 'offline', lastActivity: 22, }, { username: 'Bob', status: 'online', lastActivity: 104, }]; function whoIsOnline(friends) { let usersOnlineNames = {}; for (let { username, status, lastActivity } of friends) { if (status == 'online' && lastActivity > 10) status = 'away'; (usersOnlineNames[status] ??= []).push(username); } return usersOnlineNames } console.log(whoIsOnline(users)) |
voraa,
ты прав))) |
voraa,
как на твой взгляд лучше? так (usersOnlineNames[status] = usersOnlineNames[status] ? ? []).push(username); или так if(status in usersOnlineNames)usersOnlineNames[status].push(username); else usersOnlineNames[status] = [username]; |
ну я пробую сам решать, и свои идеи по решению пишу, а здесь на форуме я просто хочу получить помощь с решением, и подсказки что я делаю не так, если бы я не решал сам, я бы каждую задачу сюда постил, а так обращаюсь лишь с теми которые не до конца понимаю, если вас это бесит то приношу извинения, обращаться буду только по существенным проблемам
|
Цитата:
Я бы сделал так usersOnlineNames[status] ??= []; usersOnlineNames[status].push(username); |
Цитата:
Я задавал вопросы, на которые вы должны были ответить для себя. Каждая строка в программе имеет какой то смысл. Вот и думайте, попытайтесь объяснить самому себе: Этот оператор делает то-то... Эту строку я написал, для того что бы.... |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 12:46. |