1、Anagramsofstring(带有重复项)
使用递归。对于给定字符串中的每个字母,为字母创建字谜。使用map()将字母与每部分字谜组合,然后使用reduce()将所有字谜组合到一个数组中,最基本情况是字符串长度等于2或1。
constanagrams=str=>{
if(str.length[str]
returnstr.split('').reduce((acc,letter,i)=>
acc.concat(anagrams(str.slice(0,i)+str.slice(i+1)).map(val=>
letter+val)),[])
}
//anagrams('abc')->['abc','acb','bac','bca','cab','cba']
2、数组平均数
使用reduce()将每个值添加到累加器,初始值为0,总和除以数组长度。
constaverage=arr=>arr.reduce((acc,val)=>acc+val,0)/
arr.length
//average([1,2,3])->2
3、大写每个单词的首字母
使用replace()匹配每个单词的第一个字符,并使用toUpperCase()来将其大写。
constcapitalizeEveryWord=str=>str.replace(/\b[a-z]/g,char=>
char.toUpperCase())
//capitalizeEveryWord('helloworld!')->'HelloWorld!'
4、首字母大写
使用slice(0,1)和toUpperCase()大写第一个字母,slice(1)获取字符串的其余部分。省略lowerRest参数以保持字符串的其余部分不变,或将其设置为true以转换为小写。(注意:这和上一个示例不是同一件事情)
constcapitalize=(str,lowerRest=false)=>
str.slice(0,1).toUpperCase()+(lowerRest?str.slice(1).toLowerCase():
str.slice(1))
//capitalize('myName',true)->'Myname'
5、检查回文
将字符串转换为toLowerCase(),并使用replace()从中删除非字母的字符。然后,将其转换为tolowerCase(),将('')拆分为单独字符,reverse(),join(''),与原始的非反转字符串进行比较,然后将其转换为tolowerCase()。
constpalindrome=str=>{
consts=str.toLowerCase().replace(/[\W_]/g,'')
returns===s.split('').reverse().join('')
}
//palindrome('tacocat')->true
6、计数数组中值的出现次数
每次遇到数组中的特定值时,使用reduce()来递增计数器。
constcountOccurrences=(arr,value)=>arr.reduce((a,v)=>v===
value?a+1:a+0,0)
//countOccurrences([1,1,2,1,2,3],1)->3
7、当前URL
使用window.location.href来获取当前URL。
constcurrentUrl=_=>window.location.href
//currentUrl()->'https://google.com'
8、Curry
使用递归。如果提供的参数(args)数量足够,则调用传递函数f,否则返回一个curried函数f。
constcurry=(fn,arity=fn.length,...args)=>
arity
?fn(...args)
:curry.bind(null,fn,arity,...args)
//curry(Math.pow)(2)(10)->1024
//curry(Math.min,3)(10)(50)(2)->2
9、Deepflattenarray
使用递归,使用reduce()来获取所有不是数组的元素,flatten每个元素都是数组。
constdeepFlatten=arr=>
arr.reduce((a,v)=>a.concat(Array.isArray(v)?deepFlatten(v):v),
[])
//deepFlatten([1,[2],[[3],4],5])->[1,2,3,4,5]
10、数组之间的区别
从b创建一个Set,然后在a上使用Array.filter(),只保留b中不包含的值。
constdifference=(a,b)=>{consts=newSet(b)returna.filter(x
=>!s.has(x))}
//difference([1,2,3],[1,2])->[3]
11、两点之间的距离
使用Math.hypot()计算两点之间的欧几里德距离。
constdistance=(x0,y0,x1,y1)=>Math.hypot(x1-x0,y1-y0)
//distance(1,1,2,3)->2.23606797749979
12、可以按数字整除
使用模运算符(%)来检查余数是否等于0。
constisDivisible=(dividend,divisor)=>dividend%divisor===0
//isDivisible(6,3)->true
13、转义正则表达式
使用replace()来转义特殊字符。
constescapeRegExp=str=>str.replace(/[.*+?^${}()|[\]\\]/g,
'\\$&')
//escapeRegExp('(test)')->\\(test\\)
14、偶数或奇数
使用Math.abs()将逻辑扩展为负数,使用模(%)运算符进行检查。如果数字是偶数,则返回true如果数字是奇数,则返回false。
constisEven=num=>num%2===0
//isEven(3)->false
15、阶乘
使用递归。如果n小于或等于1,则返回1。否则返回n和n-1的阶乘的乘积。
constfactorial=n=>n
//factorial(6)->720
16、斐波那契数组生成器
创建一个特定长度的空数组,初始化前两个值(0和1)。使用Array.reduce()向数组中添加值,后面的一个数等于前面两个数相加之和(前两个除外)。
constfibonacci=n=>
Array(n).fill(0).reduce((acc,val,i)=>acc.concat(i>1?acc[i-
1]+acc[i-2]:i),[])
//fibonacci(5)->[0,1,1,2,3]
17、过滤数组中的非唯一值
将Array.filter()用于仅包含唯一值的数组。
constfilterNonUnique=arr=>arr.filter(i=>arr.indexOf(i)===
arr.lastIndexOf(i))
//filterNonUnique([1,2,2,3,4,4,5])->[1,3,5]
18、Flatten数组
使用reduce()来获取数组中的所有元素,并使用concat()来使它们flatten。
constflatten=arr=>arr.reduce((a,v)=>a.concat(v),[])
//flatten([1,[2],3,4])->[1,2,3,4]
19、从数组中获取最大值
使用Math.max()与spread运算符(...)结合得到数组中的最大值。
constarrayMax=arr=>Math.max(...arr)
//arrayMax([10,1,5])->10
20、从数组中获取最小值
使用Math.min()与spread运算符(...)结合得到数组中的最小值。
constarrayMin=arr=>Math.min(...arr)
//arrayMin([10,1,5])->1
21、获取滚动位置
如果已定义,请使用pageXOffset和pageYOffset,否则使用scrollLeft和scrollTop,可以省略el来使用window的默认值。
constgetScrollPos=(el=window)=>
({x:(el.pageXOffset!==undefined)?el.pageXOffset:el.scrollLeft,
y:(el.pageYOffset!==undefined)?el.pageYOffset:el.scrollTop})
//getScrollPos()->{x:0,y:200}
22、最大公约数(GCD)
使用递归。基本情况是当y等于0时。在这种情况下,返回x。否则,返回y的GCD和x/y的其余部分。
constgcd=(x,y)=>!y?x:gcd(y,x%y)
//gcd(8,36)->4
23、Headoflist
返回ARR[0]
consthead=arr=>arr[0]
//head([1,2,3])->1
24、list初始化
返回arr.slice(0,-1)
constinitial=arr=>arr.slice(0,-1)
//initial([1,2,3])->[1,2]
以上就是小编今天为大家分享的关于Web前端工程师要掌握的JavaScript代码片段(一)的文章,希望本篇文章能够对正在从事web前端工作的小伙伴们有所帮助。想要了解更多web前端相关知识和想要了解后面的代码片段的小伙伴,记得关注北大青鸟web培训官网。
1、首先打开hbuilder软件新建一个html文件,在html页面上创建一个点击的button按钮:
2、然后为button添加点击时创建一个新的div事件。使用“document.createElement()”创建一个新的div,接着使用innerHTML对新建的div设置内容,最后把div放到body显示:
3、在html里为button按钮添加宇哥点击创建div的事件,完成之后代码就写好了,接下来需要看看效果:
4、保存好html文件后使用浏览器打开,此时还没有创建div:
5、最后点击button按钮,会执行脚本创建div的事件,新的div就创建好了,顺利实现了给HTML标签添加了内容。以上就是用JS给HTML标签添加内容的 *** 作:
1、先用js获取到div的内容document.getElementById('div').innerHTML
2、直接赋值给对象
document.getElementById('div').innerHTML="***".
var re=""
for(var i=0i<26i++){
re+='<div class="hq">'+
'<img src=" # ">'+
'<img src=" # ">'+
'</div>'
}
document.writeln(re)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)