gpt4 book ai didi

javascript - 在 Javascript 中遵循此规则从数组中获取前 2 支球队

转载 作者:行者123 更新时间:2023-11-28 13:01:12 24 4
gpt4 key购买 nike

我有一个像这样的数组:

var arr = [
{id: 1, p: 7, gs: 11, ga: 7, gd: 4},
{id: 2, p: 4, gs: 10, ga: 8, gd: 2},
{id: 3, p: 3, gs: 7, ga: 9, gd: -2},
{id: 4, p: 3, gs: 5, ga: 9, gd: -4}
];

值为:

p --> 积分

gs --> 进球数

ga --> 进球数

gd --> 净胜球

<小时/>

事情是这样的:

我需要根据以下规则消除其中 2 个:

  1. 积分
  2. 净胜球
  3. 进球

因此,在这种情况下,id[1]id[2] 在获得比其他两个更多的分数之前就通过了。

但是,如果 id[2]id[3] 得分相同,您就必须考虑净胜球。净胜球最大的球队晋级。

但是,也可能有同样的净胜球,但其中一方进球多,则进球多的球队晋级。

最后,如果他们的进球数、净胜球数和积分相同,则通过 Math.random() 来决定决胜局。

我不知道如何处理这个问题,因为可能有很多情况。有没有办法在不单独检查每个案例的情况下做到这一点?

最佳答案

只需按照标准对它们进行排序即可:

arr.sort((a, b) => 
b.p - a.p ||
b.gd - a.gd ||
b.gs - a.gs ||
Math.random() - 0.5
);

然后“消除”最后两个,只需将它们拼接起来即可:

arr.splice(-2, 2);

就是这样:)

关于javascript - 在 Javascript 中遵循此规则从数组中获取前 2 支球队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50280521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com