根据用户的整体位置,使用 javascript 计算 json 对象数组中每个用户的百分位排名



使用 javascript,我如何计算结果列表中每个参与者的百分位排名,例如,位置 = 1 (Joe( 的人自赢得比赛以来具有 100% 的排名,但随后所有其他人的排名都从那里开始降低?下面是一些示例结果。有人可以帮忙吗?

const results = [{
name: 'joe',
place: 1,
rank: '100%'
}, {
name: 'roger',
place: 2,
rank: '?'
}, {
name: 'heather',
place: 3,
rank: '?'
}, {
name: 'craig',
place: 4,
rank: '?'
}, {
name: 'sally',
place: 5,
rank: '?'
}, {
name: 'cory',
place: 6,
rank: '?'
}, {
name: 'joel',
place: 7,
rank: '?'
}];

您可以从人数中减去比每个人的排名少一个,然后除以人数以获得百分比排名。

const results = [{
name: 'joe',
place: 1,
rank: '?'
}, {
name: 'roger',
place: 2,
rank: '?'
}, {
name: 'heather',
place: 3,
rank: '?'
}, {
name: 'craig',
place: 4,
rank: '?'
}, {
name: 'sally',
place: 5,
rank: '?'
}, {
name: 'cory',
place: 6,
rank: '?'
}, {
name: 'joel',
place: 7,
rank: '?'
}];
results
.forEach(person=>person.rank 
= (+((results.length - person.place + 1) / results.length * 100).toFixed(2)) + '%');
console.log(results);

最新更新