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

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

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

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

0 篇文章

Array - sample

2019-06-03 描述从数组中返回一个随机元素。提示使用 Math.random()和数组的长度相乘来生成随机数使用 Math.floor()进行四舍五入,从而使结果为最接近的整数这个方法同样适用于字符串代码 constsample=arr=>arr[Math.floor(Math.random()*arr.length)];示例随机返回数组中的一个元素:sample([3,7,9,11]);返回总目录

Array - sampleSize

2019-06-04 描述从键值唯一的数组中获取 n 个随机元素。提示使用 Fisher-Yates(洗牌)算法将数组进行随机排列使用 Array.prototype.slice()获取前 n 个元素第二个参数的默认值为 1 代码 constsampleSize=([...arr],n=1)=>{letm=arr.length;while(m){consti=Math.floor(Math.random()*m--);

Array - shank

2019-06-05 描述和 Array.prototype.splice()有着同样的功能,但是需要返回新数组来替代对原始数组的修改。提示使用 Array.prototype.slice()和 Array.prototype.concat()来获取移除存在的元素并且(或者)添加新元素后的新数组内容。第二个参数为 index,默认从 0 开始第四个元素为 elements,默认不添加新元素代码 constshank=

Array - shuffle

2019-06-06 描述对数组中的值进行随机排序后并返回新生成的数组。提示使用 Fisher-Yates(洗牌)算法将数组进行随机排列使用扩展运算符...创建新的数组代码 constshuffle=([...arr])=>{letm=arr.length;while(m){consti=Math.floor(Math.random()*m--);[arr[m],arr[i]]=[arr[i],arr[m

Array - similarity

2019-06-07 描述返回一个数组,该数组中包含两个数组中相似的元素。提示使用 Array.prototype.filter()过滤出那些值不在另一个数组中的元素使用 Array.prototype.includes()来判断另一个数组中是否包含该值代码 constsimilarity=(arr,values)=>arr.filter(v=>values.includes(v));示例找出两个数组中相同

Array - sortedIndex

2019-06-08 描述把一个元素按照数组中原有的排序规则插入该数组中适当的位置,并返回插入位置的最小索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.findIndex()找出元素应该插入的最接近的索引代码 constsortedIndex=(arr,n)=>{constisDescending=arr[0]>arr[arr.length-1];constindex=

Array - sortedIndexBy

2019-06-09 描述基于提供的迭代方法,根据数组原有的排序规则把对象插入最接近且索引值最小的正确位置后返回该索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.findIndex()找出元素应该插入的最接近的索引所有比较需基于迭代函数 fn 代码 constsortedIndexBy=(arr,n,fn)=>{constisDescending=fn(arr[0])>fn

Array - sortedLastIndex

2019-06-10 描述把一个元素按照数组中原有的排序规则插入该数组中适当的位置,并返回插入位置的最大索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.reverse()和 Array.prototype.findIndex()获取元素应该插入的最接近的最大索引值代码 constsortedLastIndex=(arr,n)=>{constisDescending=arr

Array - sortedLastIndexBy

2019-06-11 描述基于提供的迭代方法,根据数组原有的排序规则把对象插入最接近且索引值最大的位置后并返回该索引值。提示宽松的检查数组的排序规则是否为降序使用 Array.prototype.map()让数组中的所有元素进行迭代计算使用 Array.prototype.reverse()和 Array.prototype.findIndex()获取元素在迭代函数后应该插入的最大索引值代码 constsor

Array - stableSort (advanced)

2019-06-12 描述对数组执行一个稳定的排序,保持他们初始索引位置上的值不变。由于排序不能对原始数组产生变化,因此需要返回一个新数组来保存排序后的结果。提示使用 Array.prototype.map()对传入数组中的每一个元素进行值和索引的匹配使用 Array.prototype.sort()和 compare 对比函数对数组进行排序,如果两个比较元素相等的话就保持他们原始的排序使用 Array.pro

Array - symmetricDifference

2019-06-13 描述返回两个数组中不相同的元素,重复的值不需要进行过滤。提示对每一个数组创建一个 Set 使用 Array.prototype.filter()来获取数组之间不包含的值使用展开运算符来避免对原始数组的修改,从而生成新的对象结果代码 constsymmetricDifference=(a,b)=>{constsA=newSet(a),sB=newSet(b);return[...a.fil

Array - symmetricDifferenceBy

2019-06-14 描述两个数组中的每一个元素进过提供的函数计算后,返回他们之间不相同的元素。提示对每一个数组中的所有元素进行 fn 计算,使用 Set 将计算结果存在一个集合中使用 Array.prototype.filter()来获取数组之间不包含的值使用展开运算符来避免对原始数组的修改,从而生成新的对象结果代码 constsymmetricDifferenceBy=(a,b,fn)=>{constsA=n

Array - symmetricDifferenceWith

2019-06-15 描述使用提供的函数对两个数组中的元素进行逐一比对,最终返回两个数组之间不同的元素。提示使用 Array.prototype.filter()和 Array.prototype.findIndex()获取满足要求的值代码 constsymmetricDifferenceWith=(arr,val,comp)=>[...arr.filter(a=>val.findIndex(b=>comp

Array - tail

2019-06-16 描述返回数组中除第一个以外的所有元素。提示如果数组的 length 大于 1 时,使用 Array.prototype.slice(1)来获取返回结果否则返回整个数组代码 consttail=arr=>(arr.length>1?arr.slice(1):arr);示例获取除第一个元素外的剩下元素:tail([1,2,3]);//[2,3]数组只有一个元素时返回该数组:tail([1]);/

Array - take

2019-06-17 描述返回数组中的前 n 个元素。提示使用 Array.prototype.slice()创建一个从起始位置开始包含 n 个元素的数组第二个参数 n 的默认值为 1 代码 consttake=(arr,n=1)=>arr.slice(0,n);示例获取数组中的前 n 个元素:take([1,2,3],5);//[1,2,3]take([1,2,3],0);//[]返回总目录每天 30 秒系列之 JavaScri

Array - takeRight

2019-06-18 描述返回从尾部开始计数的 n 个元素。提示使用 Array.prototype.slice()创建一个从末尾位置开始包含 n 个元素的数组第二个参数 n 的默认值为 1 代码 consttakeRight=(arr,n=1)=>arr.slice(arr.length-n,arr.length);示例获取数组中的后 n 个元素:takeRight([1,2,3],2);//[2,3]takeRight(

Array - takeRightWhile

2019-06-19 描述对数组中的元素从右侧开始进行移除,如果使用的函数返回 true 则不移除。最终返回被移除的元素。提示从头开始对数组进行循环使用 Array.prototype.reduceRight()来累计那些函数返回假值的元素代码 consttakeRightWhile=(arr,func)=>arr.reduceRight((acc,el)=>(func(el)?acc:[el,...acc]

Array - takeWhile

2019-06-20 描述对数组中的元素从左到右依次进行移除,直到使用的函数返回 true 时则停止移除。最终返回被移除的元素。提示对数组进行循环使用 for...of 来对 Array.prototype.entries()进行循环当函数返回 true 时就进行返回使用 Array.prototype.slice()返回移除的元素代码 consttakeWhile=(arr,func)=>{for(const[i,v

Array - toHash

2019-06-21 描述将给定的类似数组转换为一个对象值(键值存储)。提示给出对象需是一个可迭代的或者类似数组的结构对提供的对象调用 Array.prototype.reduce.call()键为提供的对象的 key 值,逐个元素迭代计算后返回最终结果给定 key 的默认值为索引代码 consttoHash=(object,key)=>Array.prototype.reduce.call(object,(ac

Array - union

2019-06-22 描述返回两个数组中存在的每一个元素,对同一个元素只返回一次。提示对 a 和 b 的所有值创建一个 Set 使用 Array.from 将 Set 转换为数组代码 constunion=(a,b)=>Array.from(newSet([...a,...b]));示例获取两个数组中的唯一值:union([1,2,3],[4,3,2]);//[1,2,3,4]返回总目录每天 30 秒系列之 JavaScript