字符串、数组方法实战--charAt(),split(),indexOf(),substring()

这篇随笔根据两个面试题来实战一下数组、字符串的一些方法。

题一:一个字符串中找出出现次数最多的字符次数

 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

 

转载于:https://www.cnblogs.com/daicunya/p/6259314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值