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

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

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

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

JavaScript - 将字符串哈希为整数

2020-05-15 描述将输入的字符串哈希为一个完整的整数。提示使用 String.prototype.split('')和 Array.prototype.reduce()通过位移为输入的字符串创建一个哈希值代码 constsdbm=str=>{letarr=str.split('');returnarr.reduce((hashCode,currentVal)=>(hashCode=currentVa

JavaScript - 四舍五入到指定的位数

2020-05-14 描述将一数字四舍五入到指定的位数。提示使用 Math.round()和字符串模版将数字四舍五入到指定位数第二个参数 decimals 的默认值为 0,即四舍五入为整数代码 constround=(n,decimals=0)=>Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`);示例保留 2 位小数:round(1.005,2);//

iPhone 键盘弹起时 position 为 sticky/fixed 时失效

2020-05-13 描述将一个元素设置为 positon:sticky 时,该元素会相对于他最近的滚动祖先进行定位。如:屏幕滚动到横向二级导航的位置时,该二级导航需固定在屏幕顶部。将一个元素设置为 positon:fixed 时,该元素相对于屏幕的位置将永远保持不变。如:回到顶部按钮。在没有唤出键盘的情况下,以上属性都可以正常使用。但在 iPhone 中,当键盘被唤出时,使用以上属性的元素相对于屏幕的位置并不会

JavaScript - 指定范围内生成随机数

2020-05-12 描述在指定范围内返回一个随机数。提示使用 Math.random()生成一个随机数字使用乘法将其映射到所需范围内代码 constrandomNumberInRange=(min,max)=>Math.random()*(max-min)+min;示例生成一个 2~10 范围内的随机数:randomNumberInRange(2,10);//3.8679166307385877 返回总目录每

JavaScript - 指定范围内生成随机整数

2020-05-11 描述在指定范围内返回一个随机的整数。提示使用 Math.random()在范围内生成一个随机数字使用 Math.floor()将随机数转换为整数代码 constrandomIntegerInRange=(min,max)=>Math.floor(Math.random()*(max-min+1))+min;示例生成一个 0~5 范围内的随机整数:randomIntegerInRange(0

CSS - :hover 样式在移动端的兼容处理

2020-05-09 描述在 CSS:hover 伪类中可以定义鼠标悬停在元素上的效果,但由于移动端触摸屏的特性无法对其进行友好的兼容。具体表现为:手指触碰后:hover 样式会一直存在,除非点击其他区域。请使用纯 CSS 对其进行兼容。HTML<spanclass="vditor-icon">Touchme</span>CSS.vditor-icon:focus{color:#4285f4;}@media(h

JavaScript - 随机数组

2020-05-08 描述返回一个长度为 n 的数组,其中每一项都为指定范围内的随机数。提示使用 Array.from()创建一个指定长度的空数组使用 Math.random()生成一个指定范围内的随机数使用 Math.floor()将其转换为一个整数代码 constrandomIntArrayInRange=(min,max,n=1)=>Array.from({length:n},()=>Math.floor(

JavaScript - 生成随机颜色

2020-05-07 描述生成一个随机的使用十六进制表示的颜色代码。提示使用 Math.random 生成一个 24bit(6x4bits)的十六进制随机数位移后使用 toString(16)将其转换为一个十六进制字符串代码 constrandomHexColorCode=()=>{letn=(Math.random()*0xfffff*1000000).toString(16);return'#'+n.sli

JavaScript - 将角度从弧度转换为度

2020-05-06 描述将角度从弧度转换为度。提示使用 Math.PI 和弧度到度的公式将角度从弧度转换为度代码 constradsToDegrees=rad=>(rad*180.0)/Math.PI;示例求 Math.PI/2 的度:radsToDegrees(Math.PI/2);//90 返回总目录每天 30 秒系列之 JavaScript 代码

Vditor v3.1.23 发布,新增复制到微信公众号等周边功能

新功能截图简介该版本主要特性如下:为工具栏添加缩进、反向缩进、大纲、块元素前后插入行、更多(子菜单)、代码主题、内容主题、导出功能支持自定义渲染支持多款主题预览,欢迎推荐内容主题(长期有效)支持 Markdown,HTML,PDF 导出支持 PC 端,Pad 端,移动端预览支持将预览区域内容粘贴到公众号添加图片懒加载设置支持块级元素上下移动为工具栏添加顶部固定选项为 Markdown 添加段落开头空两格,主题、s

JavaScript - 获取质数

2020-04-30 描述使用埃拉托色尼筛选法(theSieveofEratosthenes),根据给定的数字生成质数。提示生成一个从 2 到给定数字的数组 arr 生成一个从 2 到给定数字的平方根的数组 numsTillSqroot 使用 Array.prototype.filter()过滤掉 arr 中可以被 numsTillSqroot 所整除或相等数字代码 constprimes=num=>{letarr=Array.

Sym 商业版优势

Sym 商业版和社区版代码有很多差异,但技术架构类似,后端都是基于 Latke 开发的,但商业版前端是完全重写的。下面我们介绍一下商业版相对于社区版的特性和优势。更好的安全性内置 CC 攻击过滤,能在很大程度上过滤掉攻击请求支持导入敏感词词库,可接入微信提供的内容安全校验接口更完备的 XSS、CSRF 防御更好的性能细致的数据缓存提供数据库索引优化脚本 ServiceWorker 浏览器端缓存图片、JavaScrip

JavaScript - 求幂集

2020-04-29 描述返回给定数字数组的幂集。提示使用 Array.prototype.reduce()和 Array.prototype.map()结合对元素进行遍历将所有组合情况放到一个数组中代码 constpowerset=arr=>arr.reduce((a,v)=>a.concat(a.map(r=>[v].concat(r))),[[]]);示例求 1,2 的幂集:powerset([1,2])

JavaScript - 百分比

2020-04-28 描述使用百分比表示给定的数组中有多少个数字小于或等于给定的值。提示使用 Array.prototype.reduce()计算有多少个数字小于指定的值,有多少个数字等于指定的值将最终结果转换为百分比代码 constpercentile=(arr,val)=>(100*arr.reduce((acc,v)=>acc+(v<val?1:0)+(v===val?0.5:0),0))/arr.

JavaScript - 获取计算后的最小值

2020-04-27 描述对数组中的每一个元素使用提供的函数进行运算后,返回结果集中的最小值。提示使用 Array.prototype.map()迭代每一个元素,返回通过 fn 运算后的值最后使用 Math.min()获取最小值代码 constminBy=(arr,fn)=>Math.min(...arr.map(typeoffn==='function'?fn:val=>val[fn]));示例通过指定方法计

JavaScript - 求两点之间的中间点

2020-04-26 描述计算两个(x,y)点之间的中间点。提示分解数组以获得 x1,y1,x2 和 y2 通过两点相加再除以 2 来计算每一个纬度的中间点代码 constmidpoint=([x1,y1],[x2,y2])=>[(x1+x2)/2,(y1+y2)/2];示例计算以下两点之间的中间点:midpoint([2,2],[4,4]);//[3,3]midpoint([4,4],[6,6]);//[5,5]

JavaScript - 求中位数

2020-04-24 描述返回一个数字数组中的中位数。提示使用 Math.floor 找出数组的中间索引使用 Array.prototype.sort()进行排序如果数组长度为奇数就返回最中间的数字,否则返回两个中间数字的平均数中位数(Median)又称中值,统计学中的专有名词,是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值,其可将数值集合划分为相等的上下两部分代码 con

JavaScript - 获取计算后的最大值

2020-04-23 描述对数组中的每一个元素使用提供的函数进行运算后,返回结果集中的最大值。提示使用 Array.prototype.map()迭代每一个元素,返回通过 fn 运算后的值最后使用 Math.max()获取最大值代码 constmaxBy=(arr,fn)=>Math.max(...arr.map(typeoffn==='function'?fn:val=>val[fn]));示例通过指定方法计

JavaScript - 根据范围映射获取对应的数字

2020-04-22 描述根据一个范围到另一个范围的映射,获取提供的数字相对应的映射。提示在 outMin-outMax 到 inMin-inMax 中返回 num 的映射代码 constmapNumRange=(num,inMin,inMax,outMin,outMax)=>((num-inMin)*(outMax-outMin))/(inMax-inMin)+outMin;示例求 5 在[0,10]和[0,100]

JavaScript - 是否满足 Luhn 算法

2020-04-21 描述 Luhn 算法的实现被用于验证各种身份的标示码。例如信用卡编号,国际移动设备识别码(IMEI),国家提供商标识符等。提示经过 String.prototype.split(''),Array.prototype.reverse()和 Array.prototype.map()组合后使用 parseInt()以获取一个数字数组使用 Array.prototype.splice(0,1)获