Ещё 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, время: 04:08. |