把字母的首个字母变成大写
我们做案例的时候又是需要用到把首个字母变成大写如下面代码:
var str="hellow"
str=str.charAt(0).toUpperCase()+str.substring(1)
document.write(str)
上面是只有一个单词到那时我们基本上都是多个单词那么我们该怎么办饿呢请看下面代码:
var str="hellow world"
var arr=str.split(' ')
for(var i=0;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1)
}
str.arr.join(' ')
document.write(str)
我们声明了一个数组str首先我们把str通过split方法变成数组然后我们循环了arr中的值我们用charAt(0)方法选择第一个字母利用toUpperCase()变成大写但是我们也要加上后面的字母所以我们用substring(0)截取后给我们返回的是0以后的内容我们要的效果就达成了。
数组排序
var arr=[a,c,b,f]
arr.sort()
document.write(arr)
在这里我们看到的是纯字母那么数字呢 原理一样
var arr=[1,2,5,4,7,1,2]
arr.sort()
document.write(arr)
sort排序
var arr=[1,2,4,1,9,7,4,1,2,3]
arr.sort(function(a,b){
if(a>b){
return 1
}else if(a<b){
return -1
}else{
return 0
}
})
下面小编来解释一下sor使用来排序的那么里面的判断是怎么回事呢
1.a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0
的值。
2.若 a 等于 b,则返回 0。
3.若 a 大于 b,则返回一个大于 0 的值。
var arr=[1,2,4,1,9,7,4,1,2,3]
arr.sort(function(a,b){
return a-b
})
document.write(arr)
我们可以开到结果是从小到大来排的序那么从小到大呢那就把a-b改成b-a
就ok了
数组去重
var arr=[1,1,2,3,4,2,66,2,3,4,12,12]
var json={}
var arr2=[]
for(var i=0;i<arr.length;i++){
json[arr[i]]=1
}
for(var i in json){
arr2.push(i)
}
document.write(arr2)
首先呢我们声明了一个数组又声明了一个json又声明了一个arr2然后我们循环了arr让json的key值等于arr中的值下因为json的唯一性重复的key值他会自动删掉因为key值不可能有重复的然后我们在下面我们循环了一下json把json中的key值push到arr2中那么我们的效果就达成了。
jquery源码获取className的兼容
<html>
<ul>
<li class="red"></li>
<li></li>
<li class="red"></li>
<li></li>
</ul>
</html>
<script>
function finInArray(arr,slass){
for(var i=0;i<arr.length;i++){
if(arr[i]==slass){
return true
}
}
}
function $(obj,sclass){
var aRes=[];
if(obj.getElementsByClassName){
aRes=obj.getElementsByClassName(sclass)
}else{
var aEl=document.getElementsByTagName("*")
var asclass=aEl[i].className.split(' ')
if(finInArray(aslass,sclass)){
aRes.push(aEl[i])
}
}
return aRes
}
window.onload=function(){
var ul=document.getElementsByTagName("ul")[0]
red=$(ul,'red')
for(var i=0;i<red.length;i++){
red[i].style.background="red"
}
}
</script>
在这里呢我们首先获取了ul然后我们封装了一个名为$的函数在这个函数里我们首先判断了getElementsByClassName能用么如果能用我们直接用if里面的语句获取了如果不能我们执行else里面我们把所有的标签都获取了然后我们运用了字符串split方法因为有的className他不光一个名字有时会有很多个所以我们又封装了一个函数findInArray我们把asclass的里面的内容循环了一遍如果asclass里面种的i个等于slass那么我们让finInArray返回true我们在$里面判断函数返回来的啥值如果true就添加到aRes我们荣return扔出去就可以获取到了
查找一个字符串中出现次数最多的是哪个
var str="aaaaaaabbbbccccdddaasssddddaaaa"
var arr=str.split("")
var json={}
var arr2=[]
for(var i=0;i<arr.length;i++){
if(json[arr[i]]){
json[arr[i]]++
}else{
json[arr[i]]=1
}
}
for(var i in json){
arr2.push({code:i,count:json[i]})
}
arr2.sort(function(a,b){
return b.count-a.count
})
document.write(`出现次数最多的是字母${arr2[0].code}一共出现了${arr2[0].count}`)
小编来解释一下以上代码首先我们声明了一个字符串里面有很多重复的字母我们把这个字符串利用split方法改变成数组然后我们for循环了在里面我们写了一个if 判断里面判断在第一次判断时我们json【a】没有值所以为false所以在for循环执行第一次的时候其实是执行的else我们给json[a]付了个值为1到第二次循环的时候json[a]值为一所以返回true我们就让json[a].vale值++以此类推然后我们循环了json我们把json的key值和vale值都添加到了arr2里面然后我们给他排序利用sor方法从小到大排序最后我们输出
网友评论