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

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

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

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

0 篇文章

Array - groupBy

2019-04-30 描述基于给定的函数,对数组中的元素进行分组。提示使用 Array.prototype.map()迭代数组中的每一个元素,返回函数运行的结果或其属性值 tomapthevaluesofanarraytoafunctionorpropertyname.使用 Array.prototype.reduce()创建一个对象,他的 key 来自于 map 计算后的结果代码 constgroupBy=(arr

Array - forEachRight

2019-04-29 描述从数组的最后一个元素开始,使用提供的函数为数组的每一个元素进行一次执行。提示使用 Array.prototype.slice(0)克隆给出的数组使用 Array.prototype.reverse()进行反向排序使用 Array.prototype.forEach()依次迭代数组中的元素代码 constforEachRight=(arr,callback)=>arr.slice(0)

Array - flatten

2019-04-28 描述按照指定深度展开被多层嵌套的数组。提示使用递归,每一次递归减少一层嵌套使用 Array.prototype.reduce()和 Array.prototype.concat()来合并元素或数组基于此,当 depth 等于 1 时停止递归第二个参数 depth 可以省略,其默认值为 1,即只展开数组中元素的第一层嵌套代码 constflatten=(arr,depth=1)=>arr.reduce

Array - findLastIndex

2019-04-27 描述当提供的函数返回真值时,返回最后一个元素的索引值。提示使用 Array.prototype.map()迭代数组中的每一个元素,使每一个元素变为包含他本身索引和值的数组使用 Array.prototype.filter()移除函数中假值的元素使用 Array.prototype.pop()获取最后一个元素代码 constfindLastIndex=(arr,fn)=>arr.map((

Array - findLast

2019-04-26 描述当提供的函数返回真值时,返回数组中的最后一个元素。提示使用 Array.prototype.filter()移除函数中返回假值的元素使用 Array.prototype.pop()获取最后一个元素代码 constfindLast=(arr,fn)=>arr.filter(fn).pop();示例获取数组中最后一个奇数:findLast([1,2,3,4],n=>n%2===1);/

Array - filterNonUniqueBy

2019-04-25 描述基于提供的对比函数,移除数组中值不唯一的元素。提示使用 Array.prototype.filter()和 Array.prototype.every()对数组中是否包含唯一值进行判断唯一值的判断取决于对比函数 fn 对比函数需传入 4 个参数:对比的两个元素及他们的索引代码 constfilterNonUniqueBy=(arr,fn)=>arr.filter((v,i)=>arr.ev

Array - filterNonUnique

2019-04-24 描述过滤出数组中重复的元素。提示使用 Array.prototype.filter()获取数组中值唯一的元素使用 Array.prototype.indexOf()和 Array.prototype.lastIndexOf()来对重复数组进行判断代码 constfilterNonUnique=arr=>arr.filter(i=>arr.indexOf(i)===arr.lastInde

Array - filterFalsy

2019-04-23 描述移除数组中的假值。提示使用 Array.prototype.filter()获取数组中为真值的元素。代码 constfilterFalsy=arr=>arr.filter(Boolean);示例获取数组中的真值:filterFalsy(['',true,{},false,'sample',1,0]);//[true,{},'sample',1]返回总目录每天 30 秒系列之 JavaS

Array - everyNth

2019-04-22 描述返回数组中第 n*i 个元素。提示使用 Array.prototype.filter()创建一个新数组新数组中包含原数组中第 n*i 个元素代码 consteveryNth=(arr,nth)=>arr.filter((e,i)=>i%nth===nth-1);示例获取数组中第 2*i 个元素:everyNth([1,2,3,4,5,6],2);//[2,4,6]返回总目录每天 30 秒系列之 J

Array - dropWhile

2019-04-21 描述从左依次移除数组中的元素直到函数返回 true。最终返回数组中剩下的元素。提示对数组进行迭代使用 Array.prototype.slice()移除数组中的第一个元素当函数返回 true 时停止移除返回剩余的元素代码 constdropWhile=(arr,func)=>{while(arr.length>0&&!func(arr[0]))arr=arr.slice(1);return

Array - dropRightWhile

2019-04-20 描述从数组末尾依次移除元素,直到函数返回 true。最终返回数组中剩下的元素。提示通过 while 倒叙遍历数组使用 Array.prototype.slice()删除数组中的最后一个元素直到来自函数的返回值为 true 返回剩余的数组代码 constdropRightWhile=(arr,func)=>{while(arr.length>0&&!func(arr[arr.length-1])

Array - dropRight

2019-04-19 描述从右边移除 n 个元素后返回一个新的数组。提示使用 Array.prototype.slice()从右边移除指定个数的元素。代码 constdropRight=(arr,n=1)=>arr.slice(0,-n);示例移除末尾 n 个元素:dropRight([1,2,3]);//[1,2]dropRight([1,2,3],2);//[1]dropRight([1,2,3],42);/

Array - drop

2019-04-18 描述返回一个移除左边 n 个元素的新数组。提示使用 Array.prototype.slice()从左边移除指定数目的元素。代码 constdrop=(arr,n=1)=>arr.slice(n);示例移除前 n 个元素:drop([1,2,3]);//[2,3]drop([1,2,3],2);//[3]drop([1,2,3],42);//[]返回总目录每天 30 秒系列之 JavaScript

Array - differenceWith

2019-04-17 描述过滤掉数组中所有元素经过对比函数后没有返回 true 的值。提示使用 Array.prototype.filter()和 Array.prototype.findIndex()获取相似的值。代码 constdifferenceWith=(arr,val,comp)=>arr.filter(a=>val.findIndex(b=>comp(a,b))===-1);示例获取 a 数组四舍五入后

Array - differenceBy

2019-04-16 描述传入的 2 个数组中的每个元素使用提供的函数后会返回一个新值,获取这 2 个数组中不同的新值。提示使用 b 数组中的每一个元素运行 fn 后的返回值来创建一个 Set。使用 Array.prototype.map()迭代 a 数组中的每一个元素进行 fn。使用 Array.prototype.filter()返回运行 fn 计算后的不同值。代码 constdifferenceBy=(a,b,fn)=>{con

Array - difference

2019-04-15 描述返回两个数组中不同的元素。提示使用 b 数组创建一个 Set 对 a 数组使用 Array.prototype.filter(),仅保留 b 中不存在的值。代码 constdifference=(a,b)=>{consts=newSet(b);returna.filter(x=>!s.has(x));};示例获取 a 数组中与 b 数组中不同的元素:difference([1,2,3],[1,2,4])

Array - deepFlatten

2019-04-14 描述对数组中的多层嵌套进行平铺。提示需要使用递归。使用展开操作符...展开一个数组。使用 Array.prototype.concat()把空数组[]和展开的数组合并后创建一个新数组。递归展开数组中的每一个元素。代码 constdeepFlatten=arr=>[].concat(...arr.map(v=>(Array.isArray(v)?deepFlatten(v):v)));

Array - countOccurrences

2019-04-13 描述计算数组中指定元素出现的次数。提示使用 Array.prototype.reduce()来增加计数迭代数组中的每个元素,如果其值和指定值相等时,计数就加 1。代码 constcountOccurrences=(arr,val)=>arr.reduce((a,v)=>(v===val?a+1:a),0);示例计算数组中 1 出现的次数:countOccurrences([1,1,2,1,

Array - countBy

2019-04-12 描述对数组元素依次传入指定函数后的返回值进行分类,并返回每种分类中的元素的个数。提示使用 Array.prototype.map()返回数组中每一个元素的属性名或指定函数的返回值。使用 Array.prototype.reduce()创建一个对象,key 为分组类型,值为该类型的元素个数。代码 constcountBy=(arr,fn)=>arr.map(typeoffn==='func

Array - compact

2019-04-11 描述移除数组中的假值。提示使用 Array.prototype.filter()过滤假值(false,null,0,"",undefined 和 NaN)。代码 constcompact=arr=>arr.filter(Boolean);示例返回数组中的真值:compact([0,1,false,2,'',3,'a','e'*23,NaN,'s',34]);//[1,2,3,'a','s