JS的字符串和数组常用函数

一、字符串(String)

1、String对象常用的方法:

方法作用方法名返回值
搜索字符
1 返回指定位置的字符stringObject.charAt(index)字符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。3 返回值:找到的字符或者空字符
2 返回某个指定的字符串值在字符串中首次出现的位置。str.indexOf(searchValue,[fromIndex])从fromIndex位置开始找,找到返回 searchvalue 的第一次出现的位置(下标数字),找不到返回-1
3 符串内检索指定的值,或找到一个或多个正则表达式的匹配。stringObject.match(searchvalue或regexp)存放匹配结果的数组
字符串转数组
字符串分割为字符数组stringObject.split(separator,【howmany】)一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身
5 检所指定字符串或者正则表达式stringObject.search(regexp或str)stringObject 中第一个与 regexp 相匹配的子串的起始位置(下标数字)。注释:如果没有找到任何匹配的子串,则返回 -1
截取字符
1 字符串的截取slice(切片,截取)stringObject.slice(start,end)一个新的字符串。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
2 截取抽取从 start 下标开始的指定数目的字符stringObject.substr(start,【length】)一个新的字符串,包含从 stringObject 的 start(包括 start 所指的字符) 处开始的 length 个字符。如果没有指定 length,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
3 提取字符串中两个指定的索引号之间的字符stringObject.substring(start,【stop】)一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 stop-1处的所有字符,其长度为 stop 减 start。
字符串连接(拼接)
连接字符串stringObject.concat(stringX,stringX,…,stringX)1concat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 stringObject 的尾部,并返回连接后的字符串。请注意,stringObject 本身并没有被更改。 2 stringObject.concat() 与 Array.concat() 很相似。
替换字符串
替换与正则表达式匹配的子串stringObject.replace(regexp/substr,replacement)一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。
英文字符串转大小写
转小写stringObject.toLocaleLowerCase() stringObject.toLowerCase()小写
转大写stringObject.toLocaleUpperCase() toUpperCase()大写

2、字符串循环

for(var i = 0;i<str.length;i++){
     console.log(str[i]);
}

输出结果:打印输出一行一行的结果

二、数组(Array)

2.1、Array对象常用的方法:

方法作用方法名返回值
数组合并
arrayObject.concat(arrayX,【arrayX,…,arrayX】)新的数组
数组转字符串
arrayObject.join(separator)返回一个字符串
arrayObject.toString()返回值与没有参数的 join() 方法返回的字符串相同
arrayObject.toLocaleString()浏览器以字符串用逗号隔开输出
数组截取
arrayObject.slice(start,【end】)注意1:该方法并不会修改数组,而是返回一个子数组。
2如果想删除数组中的一段元素,应该使用方法 Array.splice()
数组删除/【添加】
arrayObject.splice(index,howmany,【item1,…,itemX】)index:删除的位置,howmanny:删除个数,item:向数组填的新项目
数组栈方法
头部增加arrayObject.unshift(newelement1,【newelement2,…,newelementX】)返回值:arrayObject 的新长度
头部删除arrayObject.shift()1 数组原来的第一个元素的值。2 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。
尾部增添arrayObject.push(newelement1,【newelement2,…,newelementX】)把指定的值添加到数组后的新长度(数字),会改变原数组的值
尾部删除arrayObject.pop()删除并返回数组的最后一个元素
数组排序
arrayObject.sort(sortby)1 按照字符编码的顺序进行排序 2 会改变原数组的排序
颠倒数组顺序
arrayObject.reverse()返回数组本身,会改变原数组,不会创建新数组
数组过滤
arrayObject.filter(callback(element[, index[, array]])[, thisArg])1filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。2 注意: filter() 不会对空数组进行检测。3 注意: filter() 不会改变原始数组。

2.3、数组循环

2.4、forEach循环

2.4.1、形式

arr.forEach(function (item, index){},arr);

2.4.2、作用:

遍历数组

2.4.3、参数说明

(1)可以接收两个参数,第一个参数是一个函数,就是数组的每一项要运行这个函数。这个函数接收三个参数,分别是:数组中的项,下标,数组本身(2)第二个参数是一个数组(可有可无)。如果有,前面函数中的this就指向这个数组;如果没有,前面函数的this就指向window。

let arr = [1, 2, 3, 4, 5, 6, 7];
arr.forEach(function(item, index, arr) {
   console.log(item+"============"+index);
   //console.log(arr, '-----------------')
   console.log(this);
   //(7) [1, 2, 3, 4, 5, 6, 7]
},arr);
for (var i = 0; i < arr.length; i++) {
  console.log(arr[i]+"============"+i);
}

打印结果:

    1============0
    2============1
    3============2
    4============3
    5============4
    6============5
    7============6

2.5、for-of循环

let a = ['A', 'B', 'C'];
for (let attr of a) {
   console.log(attr);//A B C
}

2.6、返回数组函数的引用

var arr = ["夏敏","355354","24123324","11222"];
/*
 * 1 返回对创建此对象的数组函数的引用。
 * constructor 属性返回对创建此对象的数组函数的引用。
 */
if(arr.constructor == Array){
	console.log("数组成员!!!");
}else if(arr.constructor == Function){
	console.log("函数成员!!!");
}else{
    console.log("不知道");
}

2.7、过滤(filter)方法

获取数组中的偶数

var arr = [1,2,3,4,6,1,3,2,2,2];
Array.prototype.getEven = function(){
    //注意arr是一个一个值传进来的
	return this.filter((arr) => arr%2==0);
}
console.log(arr.getEven());//返回:(6) [2, 4, 6, 2, 2, 2]

filter(element,index,self,thisValue)参数说明

        var result = arr.filter(function(element,index,self,thisValue) {
        	var something = "返回结果~!!!";
        	console.log("当前元素的值:"+element);
        	console.log("当前元素的索引:"+index);
        	console.log("当前元素属于的数组对象:"+self);
        	console.log("回调时用的值,传递给函数:"+thisValue);
        	add(thisValue);
        	return something;
        });
        function add(obj){
        	console.log("hello world"+obj);
        }
		console.log(result)//(10) [1, 2, 3, 4, 6, 1, 3, 2, 2, 2]

2.8、数组去重

题目:给一个数组,找出不重复的数,并且返回它们。
思路:1 新建空数组 2 遍历原数组,在新数组中没有出现就添加到新数组中

1. 方法一:

var arr = [1,2,3,4,6,1,3,2,2,2];
function removeRepeat(obj){
	var newArr = [];
	for (var i = 0; i < obj.length; i++) {
		if (newArr.indexOf(obj[i])== -1) {
			newArr.push(obj[i]);
		}else{
			console.log('元素重复!!!');
		}
	}
	return newArr;
}
console.log(removeRepeat(arr));//返回:(5)[1,2,3,4,6]

2. 方法二:

通过过滤函数arr.filter(element,index,arr,thisValue)去重

var result = arr.filter(function (element,index,self){
	return self.indexOf(element) == index;
});
console.log(result);//(5) [1, 2, 3, 4, 6]

3. 方法三

双层for循环遍历,标记是否有相等元素,找到相同的元素,标记false,加入新的数组,跳出本次循环。遍历完成之后返回新数组。

function unique(arr){
	let newArr = [];
	let isRepeat ;
	for (var i = 0; i < arr.length; i++) {
		isRepeat = false;
		for (var j = i+1; j < arr.length; j++) {
			if(arr[j] == arr[i]){
				isRepeat = true;
				break;
			}
		}
		if (isRepeat == false) {
			newArr.push(arr[i]);
		}
	}
    return newArr;
}
console.log(unique(arr));//(5)[4, 6, 1, 3, 2]
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值