🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

JavaScript - 是否在指定范围内

2020-04-09 描述检查给定的数字是否在指定的范围之内。提示使用数字比较来检测给定的数字是否在指定范围内如果第三个参数 end 没有传入的话,范围就从 0 到 start 代码 constinRange=(n,start,end=null)=>{if(end&&start>end)[end,start]=[start,end];returnend==null?n>=0&&n<start:n>=start&&n

JavaScript - 计算汉明距离

2020-04-08 描述计算 2 个值之间的汉明距离。提示汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以 d(x,y)表示两个字 x,y 之间的汉明距离。对两个字符串进行异或运算,并统计结果为 1 的个数,那么这个数就是汉明距离使用异或运算符 ^ 查找两个数字之间的差位,并使用 toString(2)将其转换为二进制字符串使用 match(/1/g)计算字

JavaScript - 获取包含等比数列的数组

2020-04-07 描述初始化一个包含 start 和 end 在内的指定范围数字的数组,每两项之间的比率为 step。如果 step 等于 1 的话,则返回一个错误。提示使用 Array.from(),Math.log()和 Math.floor()创建一个符合需求长度的数组使用 Array.prototype.map()填充范围内所期待的值第二个参数 start 的默认值为 1 第三个参数 step 的默认值为 2 代码 constge

Vditor v3.0.12 发布,支持即时渲染(Typora)模式

简介该版本主要特性如下:支持即时渲染模式分屏预览支持列表样式的自定义 wysiwyg 和 ir 模式可关闭代码块的渲染部分将按需加载文件的同步请求改为异步请求代码块语言部分支持提示及自动完成初始化时支持传入元素本身 DOM 添加 JavaScriptDOC 发布 TS 类型声明文件在此感谢所有贡献者升级 options.mode 可选值增加为:'wysiwyg','sv','ir'toolbar 中的 wysiwyg 修改为 ed

JavaScript - 最大公约数

2020-04-06 描述计算两个及以上的数字或数组的最大公约数。提示内部函数_gcd 使用递归当 y 等于 0 时,返回 x 否则将 y 和 x/y 的余数传入 GCD 中继续进行计算代码 constgcd=(...arr)=>{const_gcd=(x,y)=>(!y?x:gcd(y,x%y));return[...arr].reduce((a,b)=>_gcd(a,b));};示例计算一下数字中的最大公约数:gcd(8,3

JavaScript - 获取斐波那契数列

2020-04-03 描述生成一个包含斐波那契序列的数组,直到第 n 项。提示创建一个指定长度的数组,初始化前两个值(0 和 1)使用 Array.prototype.reduce()将值添加到数组中,当 n 大于 1 时,填充前两个数相加的值代码 constfibonacci=n=>Array.from({length:n}).reduce((acc,val,i)=>acc.concat(i>1?acc[i-1]+ac

JavaScript - 阶乘

2020-04-02 描述计算一个数字的阶乘。提示使用递归如果 n 小于 0 则抛出异常如果 n 等于 1 或者 0,则返回 1 如果 n 大于 1,则返回 n 和 n-1 阶乘的乘积代码 constfactorial=n=>n<0?(()=>{thrownewTypeError('Negativenumbersarenotallowed!');})():n<=1?1:n*factorial(n-1);示例计算 6 的阶乘:factorial

JavaScript - 获取新的 Elo 游戏评分

2020-04-01 描述通过 Elo 评分系统获取两个或更多个对手之间的新评分。将旧评分放入一个数组中,然后返回一个包含新评分的数组。数组需按照从高分到低分进行排序(胜利者-> 失败者)。提示使用指数运算符**和数学运算符计算所期待的分数(获胜机会)计算每一个选手新的分数对分数进行依次循环,为每对玩家使用排列的方式进行计算,最终获取每一个玩家新的 Elo 评分第二个参数 kFactor 的默认值为 32 代码 cons

JavaScript - 求两点之间的距离

2020-03-31 描述返回两个点之间的距离。提示使用 Math.hypot()来计算两点之间的距离代码 constdistance=(x0,y0,x1,y1)=>Math.hypot(x1-x0,y1-y0);示例求两个坐标之间的距离:distance(1,1,2,3);//2.23606797749979 返回总目录每天 30 秒系列之 JavaScript 代码

JavaScript - 数字转换为数组

2020-03-30 描述将数字转换为一个数字数组。提示将数字转换为一个字符串,然后使用扩展运算符...构建一个数组使用 Array.prototype.map()和 parseInt()将每一个值转换为一个数字代码 constdigitize=n=>[...`${n}`].map(i=>parseInt(i));示例将 123 转换为一个数字数组:digitize(123);//[1,2,3]返回总目录每天 3

JavaScript - 角度转换为弧度

2020-03-27 描述将角度转换为弧度。提示使用 Math.PI 和角度转换为弧度的公式,将角度转换为弧度代码 constdegreesToRads=deg=>(deg*Math.PI)/180.0;示例求 90^o 对应的弧度:degreesToRads(90.0);//~1.5708 返回总目录每天 30 秒系列之 JavaScript 代码

JavaScript - 获取最接近范围的数值

2020-03-26 描述将 num 限制在指定的 a 和 b 范围之间。提示如果 num 在范围之内,就返回 num 如果 num 在范围之外,就返回最接近范围的数字代码 constclampNumber=(num,a,b)=>Math.max(Math.min(num,Math.max(a,b)),Math.min(a,b));示例返回范围内的数值:clampNumber(4,3,5);//4clampNumber(1,-

JavaScript - 求二项式系数

2020-03-25 描述计算两个整数 n 和 k 的二项式系数。提示使用 Number.isNaN()检查 n 和 k 是否为 NaN 如果 k 小于等于 0,或者大于等于 n,或者等于 1,或者等于 n-1 时,需返回适当的值如果 n-k 小于 k,则相应的切换其值从 2 开始循环到 k 来计算二项式系数使用 Math.round()将有误差的结果进行四舍五入代码 constbinomialCoefficient=(n,k)=>{if(Number.

JavaScript - 根据函数求数组对象中的平均值

2020-03-24 描述数组中的每一个元素根据所提供的函数可获取每一项的值,然后求这些值的平均数。提示使用 Array.prototype.map()迭代每一个元素通过 fn 计算后的返回值使用 Array.prototype.reduce()对每一个返回值进行累加,初始值为 0 将累加值除以数组的 length 代码 constaverageBy=(arr,fn)=>arr.map(typeoffn==='func

JavaScript - 平均值

2020-03-23 描述返回 2 个或更多个数字的平均值。提示使用 Array.prototype.reduce()对每一个值进行累加,初始值为 0 将累加值除以数组的 length 代码 constaverage=(...nums)=>nums.reduce((acc,val)=>acc+val,0)/nums.length;示例求平均值:average(...[1,2,3]);//2average(1,2,3)

JavaScript - 检查两个数字是否相近

2020-03-20 描述检查两个数字之间的值是否彼此相近。提示使用 Math.abs()比较两个值之间的绝对差值是否小于 epsilon 第三个参数 epsilon 默认值为 0.001 代码 constapproximatelyEqual=(v1,v2,epsilon=0.001)=>Math.abs(v1-v2)<epsilon;示例两个数字之间的差值是否小于 0.001:approximatelyEqual(M

JavaScript 内存应在何时及如何使用?

2020-03-17 回答内存是一种常用的技术,可以显著的提升代码速度。他使用缓存来存储结果,因此再次调用该耗时函数时将不需要再执行相同的运行。基于这一定义,我们能简单的抽取出一些标准来帮助我们确定在我们的代码中何时应使用内存:当执行过慢,消耗过多或函数调用时间过长时就应该使用内存内存可以加快后续函数调用,因此当你需要在相同情况下多次调用同一函数时最好使用他我们将结果存储在内存中,因此需避免相同函数在

JavaScript - 当为真值时便执行下一个函数

2020-03-16 描述将 x 值带入断言函数中进行测试。如果为 true 则返回真值处理函数 whenTrue(x),否则返回 x。提示返回一个仅接受单一参数 x 的函数根据 pred 的运行结果返回适当的值代码 constwhen=(pred,whenTrue)=>x=>(pred(x)?whenTrue(x):x);示例当一个数字为偶数时就乘以 2:constdoubleEvenNumbers=when(x=>x%2

JavaScript - 当为真值时便执行下一个函数

2020-03-18 描述将 x 值带入断言函数中进行测试。如果为 true 则返回真值处理函数 whenTrue(x),否则返回 x。提示返回一个仅接受单一参数 x 的函数根据 pred 的运行结果返回适当的值代码 constwhen=(pred,whenTrue)=>x=>(pred(x)?whenTrue(x):x);示例当一个数字为偶数时就乘以 2:constdoubleEvenNumbers=when(x=>x%2