js 生成单循环和单淘汰对阵分组

2024-04-20 05:36

本文主要是介绍js 生成单循环和单淘汰对阵分组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多比赛项目的赛制分为单循环和单淘汰赛,单循环就是小组中的每个成员互相PK,取小组前n名进入下一轮。单淘汰是直接12PK 34PK 如果组内成员是单数则有一人轮空(如果有种子选手 则种子选手轮空) 胜者晋级 败者淘汰。

			// 匹配单循环对阵initGroupSort(index) {let playerList = this.groupList[index]for (let i = 0; i < playerList.length; i++) {playerList[i].roundNum = i + 1}let schedule = []; // 存储比赛日程的数组let n = playerList.lengthfor (let round = 0; round < n - 1; round++) {// 当前轮的主场队伍编号const homeTeam = round % n + 1;// 为当前主场队伍添加比赛for (let awayTeam = homeTeam + 1; awayTeam <= n; awayTeam++) {// 如果awayTeam超出队伍数量,回到1开始编号if (awayTeam > n) {awayTeam = 1;}// 添加比赛到日程中schedule.push({homeTeam: playerList[homeTeam - 1],awayTeam: playerList[awayTeam - 1]});}}console.log('schedule', schedule);this.currentList = schedule},// 匹配单淘汰对阵initExitSort(index) {let playerList = this.groupList[index]for (let i = 0; i < playerList.length; i++) {playerList[i].roundNum = i + 1}let seedItem = ''let currentList = [];//奇数个选手--种子选手单独挑出来for (let i = 0; i < playerList.length; i++) {if (playerList.length % 2 != 0) {if (playerList[i].isSeedPlayer) {seedItem = {homeTeam: playerList[i]}playerList.splice(i, 1)}}}// 遍历playerList并两两分组for (let i = 0; i < playerList.length; i += 2) {const group = playerList.slice(i, i + 2);let groupFormat = {homeTeam: group[0],awayTeam: group[1]}currentList.push(groupFormat);}if (seedItem != '') {currentList.push(seedItem)}console.log('currentList', currentList);this.currentList = currentList},

groupList的结构大概是[[],[],[],]这样子,所以函数里设置的还需要获取一下,到一个list在进行分组,大家如果用的话可以改造一下哦

这篇关于js 生成单循环和单淘汰对阵分组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919392

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

Java中的stream流分组示例详解

《Java中的stream流分组示例详解》Java8StreamAPI以函数式风格处理集合数据,支持分组、统计等操作,可按单/多字段分组,使用String、Map.Entry或Java16record... 目录什么是stream流1、根据某个字段分组2、按多个字段分组(组合分组)1、方法一:使用 Stri

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

Python实现数据可视化图表生成(适合新手入门)

《Python实现数据可视化图表生成(适合新手入门)》在数据科学和数据分析的新时代,高效、直观的数据可视化工具显得尤为重要,下面:本文主要介绍Python实现数据可视化图表生成的相关资料,文中通过... 目录前言为什么需要数据可视化准备工作基本图表绘制折线图柱状图散点图使用Seaborn创建高级图表箱线图热

SQLServer中生成雪花ID(Snowflake ID)的实现方法

《SQLServer中生成雪花ID(SnowflakeID)的实现方法》:本文主要介绍在SQLServer中生成雪花ID(SnowflakeID)的实现方法,文中通过示例代码介绍的非常详细,... 目录前言认识雪花ID雪花ID的核心特点雪花ID的结构(64位)雪花ID的优势雪花ID的局限性雪花ID的应用场景