这篇随笔根据两个面试题来实战一下数组、字符串的一些方法。
题一:一个字符串中找出出现次数最多的字符次数
1 var str = 'fuuhuhuhufaihuhfnkjNKCNIO'; 2 function num(str) { 3 var json = {}; 4 for (var i = 0; i < str.length; i++){ 5 //字符串的charAt()方法返回指定位置的字符串 6 if(!json[str.charAt(i)]){//若json对象中没有当前属性,则给当前属性赋值为1 7 json[str.charAt(i)] = 1; 8 }else{ 9 json[str.charAt(i)]++;//若json对象中已经有当前属性,则将当前属性值+1 10 } 11 } 12 var iMax = 0; 13 var iIndex = ''; 14 for(var i in json){//for in遍历json对象的属性 15 if(json[i]>iMax){ 16 iMax = json[i]; 17 iIndex = i; 18 } 19 } 20 console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次'); 21 } 22 num(str);
题二:输出相应字符串的值
具体描述:给定一个url字符串,如var url="http://www.baidu.com/?username=xiaohua&password=262763"; 当我们输入username,输出username的值
方法一
1 var url="http://www.baidu.com/?username=xiaohua&password=262763"; 2 function urle(key) { 3 var value=""; 4 var cc = url.split('?')[1].split('&'); 5 for(var i=0;i<cc.length;i++){ 6 var r = cc[i]; 7 var a = r.split('='); 8 if (key==a[0]){ 9 value = a[1]; 10 break; 11 } 12 } 13 return value; 14 } 15 console.log(urle('username'));//xiaohua
url.split('?')将url字符串转化成数组:["http://www.baidu.com/", "username=xiaohua&password=262763"],现将原来字符串'?'后面的字符串提取出来然后再转化成数组代码如第四行
方法二
1 function urle(key) { 2 var value = ""; 3 var aa = url.indexOf('?'); 4 var bb = url.substring(aa+1); 5 var cc = bb.split('&'); 6 for(var i=0;i<cc.length;i++){ 7 var r = cc[i]; 8 var a = r.split('='); 9 if (key==a[0]){ 10 value = a[1]; 11 break; 12 } 13 } 14 return value; 15 } 16 console.log(urle('username'));//xiaohua