获得徽章 0
- 昨日在 Twitter 上看到一个特别有趣的前端开发技巧,在此分享一下。
在我们平时调试前端页面或做教学演示时,为 HTML 的 style 标签简单设置几个属性,即可达到自动刷新页面样式的效果,看完实在佩服作者的脑洞twitter.com
展开345 - # 每天一道中高级前端面试题 # 合并数组中相邻且重复的元素
示例:
merge([3,2,2,4,5,5,6,2,1]); // 输出[3,2,4,5,6,2,1]
merge([3,2,3]); // 输出[3,2,3]
merge([2,2,3]); // 输出[2,3]
答案: (arr + ',').replace(/(\d+,)\1+/ig, '$1').split(',').slice(0, -1);
解析:
1、arr代表数组,例如数组[2,2,3],加上逗号就变成字符串"2,2,3,"
2、replace中第一个参数是正则表达式/(\d+,)\1+/ig, (\d+,)表示捕获任意数字加逗号,\1代表第一个捕获组,也就是(\d+,) ,所以捕获的就是'2,2,'
3、replace中第二个参数'$1'是指正则第一个捕获组,捕获的内容(以此类推$2、$3表示第二个、第三个捕获组捕获的内容,但这里只有一个是捕获组,就是'2,2,')
4、split将字符串重新转化为数组,并将之前加的最后一个逗号slice(0,-1)去掉展开12