- call
- collectInto - 将接受数组的函数改变为可变参数函数
- deepFlatten - 深度平铺数组
- flip - 翻转函数参数
- difference - 数组比较
- forEachRight - 从数组的最后一个元素开始遍历数组
- pipeFunctions - 执行从左到右的函数组合
- differenceWith - 通过比较函数比较两个数组的差异
- groupBy - 数组分组
- promisify - 柯里化一个 Promise 函数
- distinctValuesOfArray - 数组去重
- head - 获取数组的第一个元素
- spreadOver - 将参数数组映射到该函数的输入
- dropElements - 删除数组中的元素
- indexOfAll - 返回指定元素的所有索引
- chunk - 数组分块
- dropRight - 从右开始删除数组元素
- initial - 排除数组中最后一个元素
- compact - 过滤掉数组中所有假值元素
- everyNth - 获得数组中的每个第 n 个元素
- initialize2DArray - 初始化一个二维数组
- countBy - 返回每个分组数组中元素的数量
- filterNonUnique - 过滤掉数组中的非唯一值
- initializeArrayWithRange - 初始化特定范围的数字数组
- countOccurrences - 计数数组中某个值的出现次数
- findLast
- initializeArrayWithValues - 初始化特定范围和值的数组
- flatten - 平铺数组
- intersection - 数组交集
- join - 将数组的所有元素拼接成一个字符串
- isSorted - 是否为排序数组
- last - 获取数组的最后一个元素
- pullAtIndex - 删除数组中指定索引的值
- longestItem
- pullAtValue - 删除数组中指定的值,返回删除的元素
- mapObject - 将数组的值映射到对象
- reducedFilter - 过滤对象数组
- maxN - 返回数组中N个最大元素
- remove - 移除数组中的元素
- minN - 返回数组中N个最小元素
- sample - 数组取样,随机获取数组中的一个元素
- nthElement - 获取数组的第N个元素
- sampleSize - 从数组中随机获取 n 个元素
- partition - 数组元素分组
- shuffle - 随机排列数组
- pick - 提取
- similarity - 获取数组交集
- pull - 删除数组中指定的值
- sortedIndex - 指定值应插入到数组中的最低索引位置
- symmetricDifference - 数组差集
- tail - 返回剔除第一个元素后的数组
- take - 数组切片,返回前N个元素的数组
- createElement - 创建元素
- takeRight - 数组切片,返回后N个元素的数组
- createEventHub - 创建事件中转advanced
- off - 移除事件侦听器
- union - 数组合集
- currentURL - 获取当前页面URL
- on - 在元素上添加事件侦听器(事件委派)
- without - 从数组中排除给定值
- detectDeviceType - 检测设备类型
- onUserInputChange - 当用户输入类型改变执行回调advanced
- zip - 创建一个分组元素数组
- elementIsVisibleInViewport - 判断元素是否在可视窗口可见
- redirect - 重定向到URL
- zipObject - 创建一个属性关联到值的对象
- getScrollPosition - 获取滚动条位置
- runAsync - 运行异步函数advanced
- arrayToHtmlList - 数组转换为 html 标签列表
- getStyle - 获取元素样式
- scrollToTop - 回到顶部
- bottomVisible - 页面的底部是否可见
- hasClass - 判断元素是否具有指定的样式类
- setStyle - 设置CSS样式
- copyToClipboard - 复制到剪贴板advanced
- hide - 隐藏所有指定的元素
- show - 显示所有指定的元素
- httpsRedirect - HTTPS重定向
- toggleClass - 切换一个元素的样式类
- formatDuration - 返回毫秒数的可读格式
- UUIDGeneratorBrowser - 在浏览器中生成一个 UUID
- getDaysDiffBetweenDates - 获取两个日期之间相差的天数
- once - 确保函数只被调用一次
- tomorrow - 明天
- runPromisesInSeries - 运行连续的 promises
- chainAsync - 链式调用异步函数
- sleep - 休眠,延迟执行异步函数
- compose - 函数式编程术语:函数组合
- average - 求数字或数组的平均值
- curry - 函数式编程术语:柯里化
- averageBy - 根据函数映射每个元素,然后求数组的平均值
- defer - 延迟调用
- clampNumber - 返回限制范围内的值
- functionName - 在控制台中打印函数的名称
- digitize - 将数字转化为整数数组
- memoize - 返回 memoized(缓存的)函数
- distance - 两点之间的欧氏距离
- negate - 否定断言
- elo - 等级评分算法advanced
- factorial - 阶乘
- fibonacci - 生成斐波纳契数组
- gcd - 最大公约数
- maxBy - 根据函数映射每个元素,然后返回数组的最大值
- geometricProgression - 创建一个指定范围的数字数组,后一个数是前一个数的 N 倍
- median - 获取数字数组的中值
- standardDeviation - 标准偏差
- hammingDistance - 汉明距离
- minBy - 根据函数映射每个元素,然后返回数组的最小值
- sum - 数字数组求和
- inRange - 检查某一数字是否在给定指定的范围内
- percentile - 百分比表示数组中有多少数字小于或等于给定值
- sumBy - 根据函数映射每个元素,然后返回数组的和
- isDivisible - 是否可以被某个数整除
- powerset - 幂集
- sumPower - 幂累加
- isEven - 判断为偶数
- primes - 生成质数数组
- toSafeInteger - 将值转换为安全整数
- isPrime - 判断是否为素数
- randomIntegerInRange - 在指定的范围内生成一个随机整数
- colorize - 在控制台中以彩色方式打印文本
- lcm - 最小公倍数
- randomNumberInRange - 在指定的范围内生成一个随机数
- hasFlags - 进程是否包含指定的 flags
- luhnCheck - Luhn 算法检查
- round - 精确的几位小数
- isTravisCI - 当前环境是否是 Travis CI
- sbdm - 散列算法
- JSONToFile - 将 JSON 写到文件
- untildify - 将波浪符号路径转换为绝对路径
- readFileLines - 逐行读取文件内容
- UUIDGeneratorNode - 在 Node.JS 中生成一个 UUID
- objectToPairs - 对象转化为键值对
- cleanObj - 从对象中删除属性
- orderBy - 排序对象数组
- functions - 返回一个函数属性名称数组
- select - 选择对象中的属性值
- invertKeyValues - 反转对象的键值对
- shallowClone - 浅拷贝对象
- lowercaseKeys - 小写对象属性名
- size - 获取数组,对象或字符串的大小。
- mapKeys - 根据提供函数生成的键生成一个新对象
- transform - 转换一个对象
- mapValues - 根据提供函数返回的值映射一个新对象
- truthCheckCollection - 集合中对象属性的真值检查
- merge - 合并对象
- anagrams - 颠倒字母顺序重新排列组合
- objectFromPairs - 根据键值对创建对象
- byteSize - 获取字符串的字节长度
- capitalize - 首字母大写
- capitalizeEveryWord - 大写每个单词的首字母
- decapitalize - 将字符串的第一个字母(大写字母)变成小写
- pluralize - 基于输入数字返回单词的单数或复数形式
- escapeHTML - 转义HTML字符串
- reverseString - 反转一个字符串
- getType - 获取原生类型的值
- escapeRegExp - 转义正则表达式
- sortCharactersInString - 按字母顺序排列字符串中的字符
- isArray - 是否为数组
- fromCamelCase - 转换驼峰字符串
- splitLines - 将多行字符串拆分为数组
- isArrayLike - 是否为类数组
- isAbsoluteURL - 是否为绝对地址
- toCamelCase - 转换为驼峰格式
- isBoolean - 是否为布尔值
- isLowerCase - 检查字符串是否小写
- toKebabCase - 转化为连字符拼接格式
- isFunction - 是否为函数
- isUpperCase - 检查一个字符串是否大写
- toSnakeCase - 转化为下划线拼接格式
- isNull - 是否为Null
- mask - 使用 * 遮蔽字符串
- truncateString - 截断一个字符串
- isNumber - 是否为数字
- palindrome - 检查回文
- unescapeHTML - 反转义 HTML 字符
- isObject - 是否为对象
- words - 将字符串转换为单词数组
- isPrimitive - 判断值是否为原始值
- isString - 判断是否为字符串
- isPromiseLike - 是否为类 Promise
- isSymbol - 判断是否为symbol
- httpPost - POST 请求
- isValidJSON - 是否是有效的JSON
- parseCookie - 返回所有 cookie 的 name-value 对的对象
- cloneRegExp - 克隆正则表达式
- prettyBytes - 美化字节数
- coalesce - 返回第一个非空/未定义的参数
- randomHexColorCode - 随机生成 Hex 颜色值
- coalesceFactory - 自定义的 coalesce 函数
- RGBToHex - RGB转hex
- extendHex - 将 3 位数的颜色代码转换为 6 位数的表现形式
- serializeCookie - 将 cookie name-value 对序列化为 Set-Cookie 头字符串
- getURLParameters - 网址参数
- timeTaken - 计算函数执行所花费的时间
- hexToRGB - Hex转RGB或者RGBAadvanced
- toDecimalMark - 将数字转化为千分位格式
- httpGet - GET 请求
- toOrdinalSuffix - 数字序号的后缀
- validateNumber - 数字验证
- yesNo - YES OR NO
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
elo - 等级评分算法advanced
使用 Elo 评分系统 计算两个或两个以上对手之间的新评分。它需要一个预定义数组,并返回一个包含事后评级的数组。 数组应该从最高评分到最低评分排序(赢家 -> 失败者)。
使用指数 **
操作符和数学运算符来计算预期分数(获胜几率),并计算每个对手的新评级。对每个对手计算新的评分。 循环评分,使用每个排列组合,以成对方式计算每个玩家的 Elo 评分。 忽略第二个参数,使用默认的 k-factor 为 32。
const elo = ([...ratings], kFactor = 32, selfRating) => { const [a, b] = ratings; const expectedScore = (self, opponent) => 1 / (1 + 10 ** ((opponent - self) / 400)); const newRating = (rating, i) => (selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a)); if (ratings.length === 2) { return [newRating(a, 1), newRating(b, 0)]; } else { for (let i = 0; i < ratings.length; i++) { let j = i; while (j < ratings.length - 1) { [ratings[i], ratings[j + 1]] = elo([ratings[i], ratings[j + 1]], kFactor); j++; } } } return ratings; };
// Standard 1v1s elo([1200, 1200]); // [1216, 1184] elo([1200, 1200], 64); // [1232, 1168] // 4 player FFA, all same rank elo([1200, 1200, 1200, 1200]).map(Math.round); // [1246, 1215, 1185, 1154] /* For teams, each rating can adjusted based on own team's average rating vs. average rating of opposing team, with the score being added to their own individual rating by supplying it as the third argument. */
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论