apis
本文所有参数括号以[]
和()
表示,[]
表示闭合区间,也就是包括当前参数,()
表示开区间,表示不包括当前参数
字符串
截取指定字符串 slice、substring、substr
slice
截取字符串,不影响原先字符串,返回截取的字符串:str.slice[start,end)
注意:
支持负数
参数(start 要小于 end),-1 表示最后一个,依次类推;- 若未指定 end 参数,则截取到最后一个字符
const str = 'zhangkaiyi';
const newStr = str.slice(0, 1); // 'z'
substring
截取字符串,不影响原先字符串,返回截取的字符串:str.substring[start,end)
注意:
不支持负数
- 若未指定 end 参数,则截取到最后一个字符
substr
截取指定长度的字符串,不影响原先字符串,返回截取的字符串:str.substr[start,length]
注意:
支持负数
,-1 表示最后一个,依次类推;- 若未指定 length 参数,则截取到最后一个字符
const str = 'zhangkaiyi';
const newStr = str.substr(-3, 1); // 'i'
查找指定字符串 indexOf
indexOf
查找指定字符串在字符串中首次出现
的位置,没有找到则返回 -1:str.indexOf(searchvalue,start]
注意:
- start 可以指定从字符串的哪个字符开始查起
let str2 = 'zhangkaiyi';
let n = str2.indexOf('kai', 5); // 5
lastIndexOf
查找指定字符串在字符串中最后出现
的位置,没有找到则返回 -1:str.lastIndexOf(searchvalue,end]
注意:
- end 可以指定从字符串的哪个字符开始查起(从 1 计算,从后面开始数)
let str = 'zhangkaiyi';
let n = str.lastIndexOf('kai', 5); // 5
let n1 = str.lastIndexOf('kai', 4); // -1
数组
-
slice
:arr.slice[start,end)
,不影响原数组
,不包含末尾,同字符串的 slice,返回被截取
的元素数组 -
splice
:删除或者增加,会改变原数组,删除时候返回被删除的元素,增加时候返回空数组 删除元素时候:arr.splice[start,length]
,两个参数,开始位置以及删除元素的长度 增加元素时候:arr.splice(start,0,item,item,item)
,从第三个元素开始全部加到数组中,也可以删除完再加,第二个参数不为 0 即可 -
unshift
:往数组前面增加一个或者多个元素,返回新的长度
,改变原数组 -
shift
:删除数组第一个元素,返回删除的值,改变原数组 -
push
:往数组后面增加一个或者多个元素,返回新的长度
,改变原数组 -
pop
:删除数组中最后一个元素,返回删除的值,改变原数组 -
map、filter、reduce 不会改变原数组,返回功能完之后的数组或者对应表达式
-
reverse(反转)、sort(排序) 改变原数组,并且返回改变后的数组
总结:
- 截取操作,不会改变原数组
- 截取操作,以开始结束下标作为截取的,一般 start 能取到,end 取不到,若以 start 开始,长度为截取长度的都能取到
- 增删改操作,一般会改变原数组,删除时候返回的是删除的元素
- 反转排序之类的操作也会改变原数组,返回改变之后的数组