字符串与数组的API总结

字符串的操作方法:

一 检索字符串

//方法可返回某个指定的字符串值在字符串中首次出现的位置。
字符串对象.indexOf() 

//注意对大小写敏感,如果检索的字符串没出现返回-1.有的话返回字符串出现的第一个位置.

1.1应用场景:

<a id="play" href="javascript:;" class="fa fa-play"></a>

//现在需要判断a标签里面是否有fa-pause这个类
if(document.getElementById('play').className.indexOf('fa-pause') != -1)

//上面代码的含义是判断a标签里面的类,是否拥有fa-pause这个类,
//如果拥有,那么返回值就不等于-1

二 字符串转大小写

//把字符串转成小写
字符串对象.toLowerCase()

//把字符串转成大写
字符串对象.toUpperCase()

2.1应用场景

在AJAX通信汇总里面:
https://blog.csdn.net/weixin_42839080/article/details/82529218,
为了方便我们传入get/GET 或则 post/POST这两种分别对应get提交方式和post提交方式.但是传参的时候,开发者容易不区分字母大小写,所以在提取的时候参数的操作是:

//应用场景

if(para.type.toLowerCase() == 'post') {
        //请求方式为post方式
            //设置请求头
            xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
            //发送数据
            xhr.send(para.data);
        }else {
            xhr.send();
        }

三 字符串的截取

/*
  1.slice()定义和用法:
	slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

	stringObject.slice(start,end);

	strat:要抽取的片断的起始下标。如果是负数,
	则该参数规定的是从字符串的尾部开始算起的位置。
	
	end:紧接着要抽取的片段的结尾的下标。
*/

/*
2.substring()定义和用法:
	substring() 方法用于提取字符串中介于两个指定下标之间的字符。

	stringObject.substring(start,stop);
	
	start:一个非负的整数,规定要提取的子串的第一个
	字符在 stringObject 中的位置。
	
	end:一个非负的整数,比要提取的子串的最后一个字符
	在 stringObject 中的位置多 1。如果省略该参数,
	那么返回的子串会一直到字符串的结尾。
*/


3.1应用场景:

//给一个字符串,不要最后一个逗号
 
 var idStr = "1,2,3,4,";
//字符串的下标从0开始	
 idStr = idStr.slice(0,idStr.length-1); 

//或则
 idStr = idStr.substring(0,idStr.length-1);

注意:这里虽然传的参数一样,但是含义却不一样,slice里面的参数含义是:从第0个下标开始截取到字符串倒数第二个下标为止;而substring的参数含义是:从第0个下标开始,以字符长度减一作为截取的的长度来截取字符串.

3.2 应用场景: 获取URL路径中的查询字符串(?后面的参数值)

//获取url中的参数    
getQueryString :  function (name) { 
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
    var r = window.location.search.substr(1).match(reg); 
    if (r != null) return decodeURI(r[2]); 
    return null; 
},

四 字符串转数组

/*
 1.split()定义与用法:
    split方法用于把一个字符串分割成字符串数组。

	字符串对象.split(separator,howmany);

	separator 必需。字符串或正则表达式,从该参数指定的地方
	分割字符串。 
	howmany 可选。该参数可指定返回的数组的最大长度。如果设置
	了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置
	该参数,整个字符串都会被分割,不考虑它的长度。 

	**注意:**
	如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。(""空字符串)("   " 空格字符串)

*/
"2:3:4:5".split(":")	//将返回["2", "3", "4", "5"]
"|a|b|c".split("|")	//将返回["", "a", "b", "c"]

var str="How are you doing today?";
str.split("") //H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?


4.1应用场景
现在有一个产品的尺码,后台返回的是"30-50"这样的字符串,那么需要生成30到50之间的数组.

var data = "30-50";

var start = data.split('-')[0];
var end = data.split('-')[1];

//循环生成一个数组
var arr = [];
for(var i=start,i<=end;i++) {
	arr.push(i);
	//arr[arr.length] = i;
}
console.log(data);

五 替换字符串

1.replace()使用方法:
	用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
	字符串对象.replace(regexp,replacement);

	regexp:原字符串中需要被替换的字符串
	replacement: 替换文本
var baseTitle = "数码相机十大品牌";
baserTitle = baserTitle.replace('十大品牌','');

5.1 应用场景:去掉html标签之间的空格

var htmlStr = htmlStr.replace(/[\r\n]/g, "");//去掉所有的html标记

数组的API

一 数组的删除与增加

//1.push()  方法可向数组的末尾添加一个或多个元素,并返回新的长度。

arrayObject.push(newelement1,newelement2,....,newelementX)

//2.unshift() 方法向数组的开头添加一个或更多元素,并返回新的长度。

arrayObject.unshift(newelement1,newelement2,....,newelementX)

注意: unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。

请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。


//3.pop() 方法用于删除并返回数组的最后一个元素。
arrayObject.pop()

//push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。

2.1.1 应用场景:

//向localstorage中加数据必须使添加的元素作为第一个添加

//取localstorage中的数据(字符串)
var searchData = localStorage.getItem('searchHistory');
//转化成数组
searchData = JSON.parse(searchData);
//添加新的元素
searchData.unshift('搜索记录1');

二 数组转字符串

//3.join()定义和用法

	join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
	
	arrayObject.join(separator)

	separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。 

三 删除数组中的元素

//1. splice()方法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

arrayObject.splice(index,howmany,item1,.....,itemX)

index : 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany:  必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX:  可选。向数组添加的新项目。  

2.3 应用场景:

// 删除localstorage中拥有相同历史记录的数据,只保留一条

searchData.splice(historyData.indexOf('搜索记录一'),1);

//其中的historyData.indexOf('搜索记录一')用来寻找有相同搜索记录的数据出现在第几条.

猜你喜欢

转载自blog.csdn.net/weixin_42839080/article/details/82633887
今日推荐