04 11 月 2019 浏览器 - 设备检测 2019-11-04 描述检测网站是使用移动设备还是使用台式机/笔记本打开的。提示使用正则表达式来检测 navigator.userAgent,以获取当前设备是移动设备还是台式机/笔记本代码 constdetectDeviceType=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.use
01 11 月 2019 浏览器 - 获取当前链接 2019-11-01 描述返回当前页面的链接。提示使用 window.location.href 获取当前链接代码 constcurrentURL=()=>window.location.href;示例事件中心的调用:currentURL();//'https://hacpai.com/article/1572572694000?r=Vanessa'返回总目录每天 30 秒系列之 JavaScript 代码
25 10 月 2019 浏览器 - 计数器 (advanced) 2019-10-25 描述根据特定的范围、步骤和持续时间在指定的选择器上创建一个计数器。提示检查 step 是否符合要求,并进行相应的修改在 setInterval()中使用 Math.abs()和 Math.floor()的组合来对每一次绘制计数器的间隔时间进行计算使用 document.querySelector().innerHTML 来更新选中元素的值第四个参数 step 的默认值为 1 第五个参数 duration
22 10 月 2019 浏览器 - 数组转换为 HTML 列表 2019-10-22 描述将数组中的元素转换为 <li> 标签,并将他们添加到指定 id 的列表中。提示使用 Array.prototype.map(),document.querySelector()和一个内部匿名闭包来创建 html 列表内的标签项代码 constarrayToHtmlList=(arr,listID)=>(el=>((el=document.querySelector('#'+listID)),
05 07 月 2019 Array - zipWith (advanced) 2019-07-05 描述创建一个数组,其元素应按照原始数组中的位置进行分组。具体如何分组、是否应该被合并应以提供的函数的返回值作为最终值。提示检测提供的最后一个参数是否为函数使用 Math.max()获取参数中最长数组的长度创建一个长度为第二步结果的数组作为返回值使用带有迭代功能的 Array.from()对被分组的元素创建一个数组如果参数中的数组长度不一样时,请使用 undefined 替代找不到的值对元
04 07 月 2019 Array - zipObject 2019-07-04 描述给出一个包含有效属性标示的数组和一个包含值的数组,返回属性和值组合的对象。提示由于一个对象可以有 undefined 值,但是不能有 undefined 键对包含属性的数组使用 Array.prototype.reduce()来确定最终对象的结构代码 constzipObject=(props,values)=>props.reduce((obj,prop,index)=>((obj[p
03 07 月 2019 Array - zip 2019-07-03 描述基于原始数组中的位置进行分类,然后使用这些元素创建一个数组。提示使用 Math.max.apply()获取传入的参数中最长的数组长度创建一个长度为第一步结果的数组并返回第三步中的结果使用带有迭代功能的 Array.from()将被分组的元素放到一个数组中如果参数中的数组长度不同,找不到对应位置上的值时,请使用 undefined 进行替代代码 constzip=(...arrays)=
02 07 月 2019 Array - xProd 2019-07-02 描述使用提供的两个数组进行组合后产生一个新的数组。提示使用 Array.prototype.reduce(),Array.prototype.map()和 Array.prototype.concat()从两个数组中获取每一种可能的配对存储配对结果代码 constxProd=(a,b)=>a.reduce((acc,x)=>acc.concat(b.map(y=>[x,y])),[])
01 07 月 2019 Array - without 2019-07-01 描述对数组中的元素进行过滤,找出那些特殊的值。提示使用 Array.prototype.filter()创建一个数组使用!Array.includes()获数组中不存在的给定值如果需要改变原始数组可参见 pull 代码 constwithout=(arr,...args)=>arr.filter(v=>!args.includes(v));示例找出数组中不存在的值:without([2,
01 07 月 2019 Array - unzipWith (advanced) 2019-06-30 描述创建一个由一系列元素组成的数组,通过 zip 和提供的函数来分解原始数组中的元素。提示使用 Math.max.apply()获取数组中最长的子数组长度使用 Array.prototype.map()为每一个元素创建一个数组使用 Array.prototype.reduce()和 Array.prototype.forEach()来对数组中的元素进行元素的重新分组使用 Array.proto
29 06 月 2019 Array - unzip 2019-06-29 描述创建一个数组中的数组,通过 zip 来分解数组中的元素。提示使用 Math.max.apply()获取数组中最长的子数组长度使用 Array.prototype.map()为每一个元素创建一个数组使用 Array.prototype.reduce()和 Array.prototype.forEach()来对数组中的元素进行元素的重新分组代码 constunzip=arr=>arr.redu
29 06 月 2019 Array - uniqueSymmetricDifference 2019-06-28 描述返回两个数组中唯一相互不同元素,且不能包含任意一个数组中重复的值。提示使用 Array.prototype.filter()和 Array.prototype.includes()移除每一个数组中包含其他数组中的值根据第一步的结果创建一个 Set,以便移除重复的元素代码 constuniqueSymmetricDifference=(a,b)=>[...newSet([...a.fi
27 06 月 2019 Array - uniqueElementsByRight 2019-06-27 描述基于提供的对比函数,从右边开始依次返回数组中所有的唯一值。提示使用 Array.prototype.reduceRight()和 Array.prototype.some()来获取数组中每一个值经过对比函数比对后仅包含唯一的元素对比函数接受两个参数:被对比的两个元素的值代码 constuniqueElementsByRight=(arr,fn)=>arr.reduceRight((
27 06 月 2019 Array - uniqueElementsBy 2019-06-26 描述基于提供的对比函数,返回数组中所有的唯一值。提示使用 Array.prototype.reduce()和 Array.prototype.some()来获取数组中每一个值经过对比函数比对后仅包含唯一的元素对比函数接受两个参数:被对比的两个元素的值代码 constuniqueElementsBy=(arr,fn)=>arr.reduce((acc,v)=>{if(!acc.some(
25 06 月 2019 Array - uniqueElements 2019-06-25 描述返回一个数组中的所有唯一值。提示使用 ES6 中的 Set 和扩展运算符...rest 来忽略所有重复的元素。代码 constuniqueElements=arr=>[...newSet(arr)];示例返回数组中的唯一元素:uniqueElements([1,2,2,3,4,4,5]);//[1,2,3,4,5]返回总目录每天 30 秒系列之 JavaScript 代码