JS数组和字符串中变异方法和非变异方法总结

最近在使用数组和字符串方法刷题的时候,老是记不清有哪些方法会改变原字符串和原数组的内容,那些不会。百度后发现这些方法称之为变异方法:改变自身实例的方法。故对js的数组和字符串中常见方法哪些属于变异方法作一个总结。

数组

四个添加删除方法

pop()、push()、shift()、unshift()

  这四个方法的返回值是单个被操作的元素。

splice(index,n,val)

 一般是用于删除数组中的元素,或是替换元素,或是插入元素;会改变调用数组本尊。

sort()、reverse()

数组排序反转,也会改变自身实例。

字符串

目前没有发现。


刚好趁复习完,对数组和字符串中的方法也做一个总结:

数组常用方法:
  • every(function(ele,index,arr){}) ---------对数组每一项进行检测,全部通过返回true
  • filter(func)---------返回数组中每一个元素都复合条件的元素,组成了一个新的数组
  • indexOf(val)--------返回的是第一次出现val 的下标

使用lastIndexOf(val)-----从数组后面往前面搜索 第一个出现 val的下标
和indexOf 判断某个元素是否重复

		if(arr.indexOf(val)!==arr.lastIndexOf(val)
  • join(",")-----对数组进行拼接,返回一个字符串。默认是“,”

  • slice(firstindex,lastindex)------切片,不包括lastindex的元素

    高手代码会经常看到.slice(0),查了下这样写的好处:
    1.对原数组进行深拷贝,这样进行一系列操作的时候就不影响原数组了;
    2.将类数组对象转化为真正的数组对象:
    var anchorArray =[].slice.call(document.getElementsByTagName(‘a’), 0);

  • forEach(func)----------可以实现对每一个元素操作。遍历数组 相当于for循环

  • concat(arr1,arr2,arr3,…)--------连接数组。 注: arr1.concat(arr2) 不改变arr1 和arr2

  • map(func)-------数组中的所有元素都要执行一次这个方法,把执行后的结果重新放在一个新的数组中


上述提到的变异方法:

  • pop()、push()、shift()、unshift()
  • splice(index,n,val) ------------从index起 删除n个 ,用val的值去填补删除掉的值
  • reverse()--------反转数组
  • sort()--------- 但是排序不稳定 (sort中也可以传函数,写固定的函数就稳定了)
    代码案例如下:
			1、从小到大
			//内置的回调函数中的 a,b表示前后元素arr[j],arr[j+1]
			arr.sort(function(a,b){
				//就是返回 负数 就把 a放在b前面 
				return a-b;
			})
			2、从大到小
			arr.sort(function(a,b){
				return b-a;
			}) 
字符串常用方法:
  • slice()、substring、substr()

    string.slice(start, end)提取一个字符串
    string.substring(start, end)提取一个字符串,end不支持负数
    string.substr(start, len)提取一个长度为len的字符串

  • indexOf(val,startIndex); 返回子字符串第一次出现的位置,从startIndex开始查找,找不到时返回-1,通常用于判断是否包含 某段字符串的判断。

  • lastIndexOf(searchString,startIndex); 从由往左找子字符串,找不到时返回-1

  • replace(str1,str2) 替换, 把str1 换成str2 返回修改后的字符串,但是 调用本身实例没有改变
    通常会这样操作: 用一个返回值接住 再用str 就是的到改变后的了

		str=str.replace(str1,str2)  //再用str接收, str就相当于是改变后的              
  • str.concat(str1,…) ----------用于连接两个或者多个字符串。
  • str.split("") -----------以传入参数对字符串进行切割。 返回数组
  • match(str) —查找字符串、支持正则表达式
		var str = "今天天气好好";
        var result = str.match("天天");
        console.log(result);//["天天", index: 1, input: "今天天气好好", groups: undefined]         
  • search()-----查找字符串返回下标、支持正则表达式
		var str = "今天天气天天好好";
        var result = str.search("天天");
        console.log(result);//1  
  • str.charAt(index); 返回子字符串,index为字符串下标,index取值范围[0,str.length-1]

  • str.charCodeAt(index); 返回子字符串的unicode编码,index取值范围同上

欧克,写完收工~ 写了一遍应该不那么容易忘了。多总结,多分享~ 突突突~

哈哈 ~ 另外 耳中的这首民谣分享给各位: 一枚邮票 One stamp
http://music.163.com/song?id=461577631&userid=136113332

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值