1. 字符串逆序输出
方法一:先转化成数组,再逆序,再拼接回String
// 数组 reverse()
function reverseString1(str){
return str.split('').reverse().join('')
}
方法二:for循环+chartAt(),倒序,逐个拼接
function reverseString2(str){
var n= str.length-1
var result = ''
for(var i=n;i>=0;i--;){
return result+=str.charAt(i)
}
}
方法三:类同方法二,递归+charAt()
function reverseString3(str,pos,strOut){
if(pos<0)
return strOut
strOut+=strIn.charAt(pos--)
return reverseString3(strIn,pos,strOut)
}
方法四:调用call()函数后,让字符串具有数组的特性,在调用未传入参数的slice()函数后,调用reverse(),再调用join()函数,得到逆序字符串
function reverseString4(){
var arr= Array.prototypr.slice.call(str)
return arr.reverse().join('')
}
方法五:借助栈的先进后出原则
//栈
function stack(){
this.data=[];
this.top=0;
}
stack.prototype={
push:function push(elemnet){
this.data[this.top++]=elemnt
}
pop:function pop(){
return this.data[--this.top]
}
length:function(){
return this.top
}
}
function reverseString5(){
var s=new stack()
var arr=str.split('')
var len=arr.length;
var result=''
for(var i=0;i<lenth;i++){
s.push(arr[i])
}
for(var j=0;j<lenth;j++){
reslut+=s.pop(j)
}
}
2.统计字符串出现次数最多的字符及出现的次数
方法一:遍历字符串,通过key-value的对象来存储数据,遍历对象,判断条件,统计出现次数
function getMaxCount(str){
var json={}
for(var i=0;i<str.length;i++){
if(!json[str.charAt(i)]){
json[str.charAt(i)]=1
}else{
json[str.charAt(i)]++
}
}
var maxCountChar=''
var maxcount=0
for(var key in json){
if(json[key]>maxCount){
maxCount=json[key]
maxCountChar=kley
}
}
retrun '出现最多的值是'+maxCountChar+'出现次数为'+maxCount
}
var str='gfdshghsdghsodhgiodskgdlsnvjnkpjgpfdjsgjdso'
getMaxCount(str)