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

相关文章

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Java反射实现多属性去重与分组功能

《Java反射实现多属性去重与分组功能》在Java开发中,​​List是一种非常常用的数据结构,通常我们会遇到这样的问题:如何处理​​List​​​中的相同字段?无论是去重还是分组,合理的操作可以提高... 目录一、开发环境与基础组件准备1.环境配置:2. 代码结构说明:二、基础反射工具:BeanUtils

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

Java如何根据文件名前缀自动分组图片文件

《Java如何根据文件名前缀自动分组图片文件》一大堆文件(比如图片)堆在一个目录下,它们的命名规则遵循一定的格式,混在一起很难管理,所以本文小编就和大家介绍一下如何使用Java根据文件名前缀自动分组图... 目录需求背景分析思路实现代码输出结果知识扩展需求一大堆文件(比如图片)堆在一个目录下,它们的命名规