Как получить место пользователя в топе?

updates.hear(/рейтинг/i, async (context) => {
    let _users = [];
    for (let key in db) {
		let name = db[key].name.split(' ');
		let shortname = name[1].substr(0, 1);
		_users.push({
			id: key,
			balance: db[key].balance,
			name: name[0] + ' ' + shortname
		});
    }
    return context.send(
        `Богатейшие майнеры\n\n` +
        _users
            .sort((a, b) => b.balance - a.balance)
            .slice(0, 15)
            .map((x, i) => `♯${++i} [id${x.id}|${x.name}.] ⇨ ${x.balance.toLocaleString().replace(/,/g, ".")} VC\n\nВаш счёт: ${context.user.balance}\nВы на ${mesto} месте`)
            .join(`\n`)
    );
});

Там где ${mesto} нужно указать место игрока который ввёл кмд
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
@StockholmSyndrome
_users.sort((a, b) => b.balance - a.balance);
let place = _users.findIndex(({id}) => id === context.senderId);
return context.send(
  `Богатейшие майнеры\n\n` +
  _users 
    .slice(0, 15)
    .map((x, i) => `♯${++i} [id${x.id}|${x.name}.] ⇨ ${x.balance.toLocaleString().replace(/,/g, ".")} VC`)
    .join(`\n`) + 
  `\n\nВаш счёт: ${context.user.balance}\nВы на ${place} месте`
);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы