2019-05-05 描述根据开始、结束范围及间隔大小生成一个数组。提示使用 Array.from()创建一个数组数组的长度为(end-start+1)/step 为每一个元素填充给定范围内所期望的值起始值可以省略,默认值为 0 间隔大小也可以省略,默认值为 1 代码 constinitializeArrayWithRange=(end,start=0,step=1)=>Array.from({length:Mat
2019-05-04 描述根据给定的宽、高和值初始化一个二位数组。提示使用 Array.from()创建数组使用 Array.prototype.map()为 h 行中的每一行生成包含 w 个元素的数组使用 Array.prototype.fill()为数组中的元素赋值如果没有提供值的话,其默认值为 null 代码 constinitialize2DArray=(w,h,val=null)=>Array.from({le
2019-05-03 描述返回数组中除最后一个以外的所有元素。提示使用 arr.slice(0,-1)返回数组中的所有元素,但是不包含最后一个代码 constinitial=arr=>arr.slice(0,-1);示例移除数组中最后一个元素:initial([1,2,3]);//[1,2]返回总目录每天 30 秒系列之 JavaScript 代码
2019-05-02 描述返回数组中和 val 相等的所有元素的索引值。如果没有元素与之相等的话,返回[]。提示使用 Array.prototype.reduce()迭代每一个元素,存储与之相等的元素的索引值返回数组的索引值代码 constindexOfAll=(arr,val)=>arr.reduce((acc,el,i)=>(el===val?[...acc,i]:acc),[]);示例获取数组中与指定值
2019-05-01 描述返回列表中的第一个元素。提示使用 arr[0]返回数组中的第一个元素代码 consthead=arr=>arr[0];示例返回第一个元素:head([1,2,3]);//1 返回总目录每天 30 秒系列之 JavaScript 代码
2019-04-30 描述基于给定的函数,对数组中的元素进行分组。提示使用 Array.prototype.map()迭代数组中的每一个元素,返回函数运行的结果或其属性值 tomapthevaluesofanarraytoafunctionorpropertyname.使用 Array.prototype.reduce()创建一个对象,他的 key 来自于 map 计算后的结果代码 constgroupBy=(arr
2019-04-29 描述从数组的最后一个元素开始,使用提供的函数为数组的每一个元素进行一次执行。提示使用 Array.prototype.slice(0)克隆给出的数组使用 Array.prototype.reverse()进行反向排序使用 Array.prototype.forEach()依次迭代数组中的元素代码 constforEachRight=(arr,callback)=>arr.slice(0)
2019-04-28 描述按照指定深度展开被多层嵌套的数组。提示使用递归,每一次递归减少一层嵌套使用 Array.prototype.reduce()和 Array.prototype.concat()来合并元素或数组基于此,当 depth 等于 1 时停止递归第二个参数 depth 可以省略,其默认值为 1,即只展开数组中元素的第一层嵌套代码 constflatten=(arr,depth=1)=>arr.reduce
2019-04-27 描述当提供的函数返回真值时,返回最后一个元素的索引值。提示使用 Array.prototype.map()迭代数组中的每一个元素,使每一个元素变为包含他本身索引和值的数组使用 Array.prototype.filter()移除函数中假值的元素使用 Array.prototype.pop()获取最后一个元素代码 constfindLastIndex=(arr,fn)=>arr.map((
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);/
2019-04-25 描述基于提供的对比函数,移除数组中值不唯一的元素。提示使用 Array.prototype.filter()和 Array.prototype.every()对数组中是否包含唯一值进行判断唯一值的判断取决于对比函数 fn 对比函数需传入 4 个参数:对比的两个元素及他们的索引代码 constfilterNonUniqueBy=(arr,fn)=>arr.filter((v,i)=>arr.ev
2019-04-24 描述过滤出数组中重复的元素。提示使用 Array.prototype.filter()获取数组中值唯一的元素使用 Array.prototype.indexOf()和 Array.prototype.lastIndexOf()来对重复数组进行判断代码 constfilterNonUnique=arr=>arr.filter(i=>arr.indexOf(i)===arr.lastInde
2019-04-23 描述移除数组中的假值。提示使用 Array.prototype.filter()获取数组中为真值的元素。代码 constfilterFalsy=arr=>arr.filter(Boolean);示例获取数组中的真值:filterFalsy(['',true,{},false,'sample',1,0]);//[true,{},'sample',1]返回总目录每天 30 秒系列之 JavaS
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
2019-04-21 描述从左依次移除数组中的元素直到函数返回 true。最终返回数组中剩下的元素。提示对数组进行迭代使用 Array.prototype.slice()移除数组中的第一个元素当函数返回 true 时停止移除返回剩余的元素代码 constdropWhile=(arr,func)=>{while(arr.length>0&&!func(arr[0]))arr=arr.slice(1);return
2019-04-20 描述从数组末尾依次移除元素,直到函数返回 true。最终返回数组中剩下的元素。提示通过 while 倒叙遍历数组使用 Array.prototype.slice()删除数组中的最后一个元素直到来自函数的返回值为 true 返回剩余的数组代码 constdropRightWhile=(arr,func)=>{while(arr.length>0&&!func(arr[arr.length-1])
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);/
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
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 数组四舍五入后
2019-04-16 描述传入的 2 个数组中的每个元素使用提供的函数后会返回一个新值,获取这 2 个数组中不同的新值。提示使用 b 数组中的每一个元素运行 fn 后的返回值来创建一个 Set。使用 Array.prototype.map()迭代 a 数组中的每一个元素进行 fn。使用 Array.prototype.filter()返回运行 fn 计算后的不同值。代码 constdifferenceBy=(a,b,fn)=>{con