字符串对象和数组对象
之前的一篇博客介绍了数字、日期等对象,这篇给各位大佬介绍一下字符串对象和数组对象,其他的对象api我就不介绍了,感觉这些用的会比较多。
1.字符串对象
字符串主要用于处理字符串,那么会有以下的方法可以对字符串进行处理。
①字符串的查找
//字符串对象下API相当于字符串对象下的属性
//待检测的字符串.indexOf(检测字符),返回结果-1,没有字符,非-1表示存在检测字符
//indexOf()检测某个字符在另一个字符中是否出现
var str = 'asjuhdkuhk';
str = new String(str);
console.log(str);//String {"asjuhdkuhk"}
var str1 = 'uh';
var res = str.indexOf(str1);//如果存在字符串
console.log(res);//3
//lastIndexOf()检测某个字符在另一个字符串中最后出现的位置,返回结果:出现的位置,-1没有出现
//语法:字符串.lastIndexOf(查询的字符)
var res1 = str.lastIndexOf('k');
console.log(res1);//9
//这里的正则表达式后面我会介绍一下正则表达式,现在可以看一下这个方法可以通过正则表达式或者字符查找
//match(正则表达式或者查询的字符) 根据正则表达式和检测的字符:有返回结果【组成的数组】,无返回null
var str2 = 'jaskh';
var res2 = str2.match('ask');//返回匹配结果的伪数组
var res3 = str2.match(/\d/g);// \d查找数字,g表示全局查找
console.log(res2);//["ask", index: 1, input: "jaskh", groups: undefined]
console.log(res3);//null
运行结果:
②字符串的截取
//slice()截取字符片段 从第一个索引值开始,到第二个索引值结束,返回截取字符的片段
//---->参数只有一个:表示从第几个开始,截取到最后一个
var str = 'dskjhgfkjsdhk';
str = new String(str);
console.log(str);
var res = str.slice(3,6);//包含3,不包含6
console.log(res);
var res = str.slice(5);
console.log(res);
//substr(startIndex,length);作用截取字符片段,返回字符片段
//----> startIndex 表示第几个字符开始
//----> length 表示截取字符的长度
var str1 = 'asjkdhkui';
str1 = new String(str1);
var res2 = str1.substr(3,5);
console.log(res2);
//substring(startIndex,endIndex)
//----> startIndex 表示第几个字符开始
//----> endIndex 表示截取字符的endIndex结尾的前一个,不包含endIndex
var res3 = str1.substring(3,5);
console.log(res3);
运行结果:
③字符串的替换
var str = 'alsdhklj';
//replace(reg,newStr) reg正则匹配 用newStr替换匹配的结果
var res = str.replace(/l/g,'o');
console.log(str);//字符串自身没变化
console.log(res);//返回替换结果
运行结果:
④字符串的切割
// split(reg,len) 切割字符并返回切割后的【数组】
// --->reg表示匹配字符,从匹配的字符开始切割
// --->len 切割后返回数组的长度,没有,返回最大长度;有值,小于等于最大长度
var classname = 'asd,asdasd,ewrw,zxc';
var classArR = classname.split(/,/g);//最长
var classA = classname.split(/,/g,2);//长度为2
console.log(classname);
console.log(classA);
console.log(classArR);
运行结果:
⑤字符串的其他方法
var str = 'jakshdkjhaskj';
//charAt()返回指定索引值对应的字符
var res = str.charAt(3);
console.log(res);
//返回最后一个字符
var lastStr = str.charAt(str.length - 1);
console.log(lastStr);
//返回第一个字符
var firstStr = str.charAt(0);
console.log(firstStr);
//toLocaleUpperCase()
var str = 'jahsdaskjdhksj';
//将小写字母变大写字母
var res = str.toLocaleUpperCase();
//将大写字母变小写字母
var res1 = res.toLocaleLowerCase();
console.log(res);
console.log(res1);
//search() \w表示英文字母 数字 下划线
//search() 返回匹配字符 在字符串中的位置 -1表示没有这个字符
var res = str.search('k');//7
console.log(res);
运行结果:
⑥字符串的应用(随机生成验证码)
var vertify = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
//生成一个4位数的随机验证码
//1.初始化验证码 空字符 res的字符长度是4
//2.获取vertify中每一个字符
var res = '';
//求0-vertify.length-1中随机整数
for(var i = 0;i<4;i++){
//这边是随机生成一个随机数
var random = Math.random();
random *= vertify.length;
random = Math.floor(random);
res += vertify[random];
}
console.log(res);
运行结果:
2.数组对象
①数组的删除
var arr = [1,3,4];
//pop()删除数组最后一个元素,返回删除元素
//注意:改变是数组本身
var res = arr.pop();
console.log(res,arr);
//从头部删除 shift() 返回被删除的元素
//注意:改变数组本身
var res1 = arr.shift();
console.log(res1,arr);
//用delete删除数据,数组长度不变 for...in...不会遍历删除的元素
var arr = new Array(1,3.4,5,'dd','dee',[]);
delete arr[3];
console.log(arr);
运行结果:
②数组的添加
var arr = [1];
//push()改变是数组本身,在数组尾部添加元素,并返回数组长度
//参数:增加的数据,可以传无数个
var res = arr.push('我是新增内容',3,4,5);
console.log(res);
console.log(arr);
//unshift() 从数组头部添加数据,返回数组长度
//参数:添加的数据
var res1 = arr.unshift('头部添加');
console.log(res1,arr);
//concat()合并数组,返回合并后的数组,数组本身无变化
//参数:被合并的数组
var arr1 = [1,2,3,4,5];
var arr2 = ['dd','dddd'];
//将arr2与arr1进行合并,返回合并后数组,res接收
var arr1 = arr1.concat(arr2);
console.log(res,arr1);
运行结果:
③数组转化为字符串
这边就不给出运行了,可以自己试一下。
var arr = [2,3,4,5,'dd','qwewior'];
//隐式转化
var str = ''+ arr;
console.log(str);//'2,3,4,5,ddd,qwewior'
//通过数组中API进行转化
//toString()将数组转化为字符串,并返回转化后的字符串
var res = arr.toString();
console.log(res);
//join()将数组中数据进行连接,返回连接后的字符串
//参数:数据与数据之间的连接符。默认为','
var res1 = arr.join(' ');
console.log(res1,arr);
//将字符串变数组
var resArr = res1.split();
console.log(resArr);
console.log(typeof(resArr));
④数组splice方法
var arr = [1,'333',true,'333',44,55,66,44,6];
/*
splice()删除 替换 插入
1.一个参数:删除,从第这个参数的元素开始,一直到最后,返回删除的数组元素
注意:改变原来数组
2.splice(index,len)从索引值index开始,删除len个元素,返回len个元素组合的数组
注意:原来数组发生变化
3.三个以上参数:作用:替换或者插入,表示从索引值元素开始,删除len个元素,从删除位置开始插入参数3后的参数
*/
//删除 删除索引值为3以后的数据
var res = arr.splice(3);
console.log(res,arr);
//删除几个
var arr1 = [23,4,5,6,7,8];
//表示从第二个索引值开始,删除一个
var res1 = arr1.splice(2,1);
console.log(res1,arr1);
//替换
var arr2 = [4,5,6,7,8,9,3];
//从索引值为1开始删除2个元素,将'aa','cc'替换删除元素5,6
var res2 = arr2.splice(1,2,'aa','cc');
console.log(res2,arr2);
//插入
var arr3 = [2,3,4,5];
var res3 = arr3.splice(2,0,'ddd','aa');
console.log(res3,arr3);
运行结果:
⑤字符串的其他方法
var arr = [1,2,3,6,7,'asjk','sajuhd'];
// slice(startindex,endindex) 截取数组中片段,返回截取内容的数组
// startindex从第几个索引值开始,包含本数
// endindex 到第几个索引值结束,不包含本数
//截取内容 大于等于startindex 小于endindex
var res = arr.slice(2,5);
console.log(arr,res);
//reverse()颠倒数组:例如原来升序,颠倒后降序
var arr1 = [['ddd'],1,2,43,5,6];
var res1 = arr1.reverse(arr1);
console.log(res1,arr1);
运行结果:
总结
字符串和数组对象的一些方法并没有介绍完,这里就讲到这,还有其他的一些函数可以参考一下这个网站https://developer.mozilla.org/zh-CN/docs/Web/JavaScript,这不是打广告,我觉得这个网站可以的,方便学习,可以锻炼看开发文档的能力,所以还是比较推荐的,希望能帮助到各位。