字符串、数组方法实战--charAt(),split(),indexOf(),substring()
这篇随笔根据两个面试题来实战一下数组、字符串的一些方法。
题一:一个字符串中找出出现次数最多的字符次数
var str = 'fuuhuhuhufaihuhfnkjNKCNIO';
function num(str) {
var json = {};
for (var i = 0; i < str.length; i++){
//字符串的charAt()方法返回指定位置的字符串
if(!json[str.charAt(i)]){//若json对象中没有当前属性,则给当前属性赋值为1
json[str.charAt(i)] = 1;
}else{
json[str.charAt(i)]++;//若json对象中已经有当前属性,则将当前属性值+1
}
}
var iMax = 0;
var iIndex = '';
for(var i in json){//for in遍历json对象的属性
if(json[i]>iMax){
iMax = json[i];
iIndex = i;
}
}
console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次');
}
num(str);
题二:输出相应字符串的值
具体描述:给定一个url字符串,如var url="http://www.baidu.com/?username=xiaohua&password=262763"; 当我们输入username,输出username的值
方法一
var url="http://www.baidu.com/?username=xiaohua&password=262763";
function urle(key) {
var value="";
var cc = url.split('?')[1].split('&');
for(var i=0;i<cc.length;i++){
var r = cc[i];
var a = r.split('=');
if (key==a[0]){
value = a[1];
break;
}
}
return value;
}
console.log(urle('username'));//xiaohua
url.split('?')将url字符串转化成数组:["http://www.baidu.com/", "username=xiaohua&password=262763"],现将原来字符串'?'后面的字符串提取出来然后再转化成数组代码如第四行
方法二
function urle(key) {
var value = "";
var aa = url.indexOf('?');
var bb = url.substring(aa+1);
var cc = bb.split('&');
for(var i=0;i<cc.length;i++){
var r = cc[i];
var a = r.split('=');
if (key==a[0]){
value = a[1];
break;
}
}
return value;
}
console.log(urle('username'));//xiaohua
字符串、数组方法实战--charAt(),split(),indexOf(),substring()的更多相关文章
- JavaScript中字符串的方法:charAt()、charCodeAt()、indexOf()、lastIndexOf()、substr()、slice()、substring()、search()、replace()、split()、concat()、toLowerCase()、toUpperCase()
1.字符创的创建: //1.通过new 来创建 var str = String("javascript"); //2.3.直接使用字面量进行创建 var str='html5'; ...
- JS 操作符、控制流程、循环、字符串/数组方法
操作符 算术运算符:+ .- . * . / . %.++.-- 赋值运算符:= .+=.-=. *=./=.%= 比较运算符:>.>=.<.<=.!=.==.===(全等,数 ...
- 适合MCU用的C语言快速互转HEX(16进制)和原始字符串/数组方法
缘由 这个起因是昨晚群里有人在讨论怎么把字符串转成HEX方法最佳,讨论到最后变成哪种方法效率最优了.毕竟这代码是要在MCU上面跑的,要同时考虑到时间和空间的最优解. 当然讨论的是有结果的,具体实现的方 ...
- 字符串的方法slice、substr、substring对比
三个方法的参数1都代表子串开始位置,参数2在slice和substring中表示结束位置,而在substr中代表的则是子串长度: 对于负数态度,当出现在参数1的位置时,slice和substr从末尾开 ...
- split 将字符串分割成字符串数组
list_name = list_name.split(","); split() 方法用于把一个字符串分割成字符串数组. 语法 stringObject.split(separa ...
- js中字符串的方法
js String对象中常用方法小结,需要的朋友可以参考下: 1.charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码. strObj.charCodeAt(index) 说明: ...
- 常用处理数组、字符串API → forEach every some sort map filter slice split indexOf concat substring substr splice join toString replace
Object与Array的语法糖 var arr = [1,2,3]; // [] 是 new Array(1,2,3) 的语法糖(简写) var obj = {'name':2,'age':3}; ...
- C#几种截取字符串的方法(split 、Substring、Replace、remove)
C#截图字符串常用的方法有 split .Substring.Replace.remove等. split的使用: 1. Split( Char ()) 返回的字符串数组包含此实例中的子字符串(由指定 ...
- js字符串和数组操作,容易混淆的方法总结(slice、substring、substr、splice)
平时工作中,很少静下心来总结基础知识,总觉得自己会用了,有点飘了,直到碰壁之后才懂得基础知识的重要性.大牛告诉我,一次写对,是不是可以不用F12去调试了?是不是省了时间?简直是面红耳赤,无地自容.在这 ...
随机推荐
- android studio2.2 的Find Sample Code点击没有反应
1 . 出现的问题描述: 右键点击Find Sample Code后半天没有反应,然后提示 Samples are currently unavailable for :{**** ...
- js获取系统时间时自动补齐日期带零
最近在开发中发现有日期不规范的问题,正常规则应该是yy-mm-dd,而在输出时候却变成yy-mm-d,这是js的date()方法在作怪 解决思路是若在10号前,则自动给它补齐一个0,下面给出解决方法, ...
- ajax用get刷新页面元素在IE下无效解决~~
总结一下解决办法: 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,[即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端 ...
- PHPCMS_V9 模型字段添加单文件上传功能
后台有“多文件上传”功能,但是对于有些情况,我们只需要上传一个文件,而使用多文件上传功能上传一个文件,而调用时调用一个文件URL太麻烦了. 使用说明: 1.打开phpcms\modules\conte ...
- [Git] 还原Git上commit,但是没有push代码
直接在Idea上操作2步解决: 1. 找到: 2. 在To Commit里面填写:HEAD^,表示将commit的信息还原为上一次的,需要多次直接reset多次即可: 使用命令行:原理一样 以下内容转 ...
- 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...
- 表单验证<AngularJs>
常用的表单验证指令 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" requir ...
- SPFA
SPFA算法用来求单源最短路.可以处理任何有解的情况. 先建一个数组\(dist_x = 起点到x的最短路长度\),当\(x=起点\)时为0,当x和起点不通时为INF(本题中为\(2^31-1\)). ...
- C#区分多态和重载-delphi也类似
Delphi也是基于继承和接口的多态性.
- IIR滤波器和FIR滤波器的区别与联系zz
-------------------------------------------------------------------------------------------------- ...