字符串和数组是两个很常用的数据类型了,也有很多操作方法,但是一不小心总会将这两种操作方法弄混/手动捂脸
最近看了下 ES6,里面有一些很好用的方法,在这里也一并总结一下。
新建
|
|
赋值:
|
访问
|
修改
|
|
数组方法
方法 | 说明 |
---|---|
concat() | 连接两个或多个数组,返回新数组 |
join() | 通过字符连接数组元素组成字符串,默认用逗号连接 |
pop() | 删除并返回数组最后一个元素 |
push() | 向数组末尾添加一个或多个元素,改变原数组返回新的长度 |
shift() | 删除并返回数组的第一个元素 |
unshift() | 向数组开头添加一个或多个元素,改变原数组返回新的长度 |
reverse() | 颠倒数组顺序 |
sort() | 对数组进行排序 |
toString() | 将数组转换为字符串 |
特殊记忆:
slice(start,end): 剪切,返回被剪切的元素
start 为-1表示最后一个元素,end 可以没有表示到末尾
splice(index,number,item): 剪切或者添加,原数组被改变,返回被删除的元素。
index 和 number 必需,index 为负表示从末尾开始,number 为 0 表示不删除。item 表示新添加的元素,可选。
拓展方法
…()
[…[1,2], …[3,4], …[5,6]]; //[1,2,3,4,5,6]
[…’hello’]; //[“h”,”e”,”l”,”l”,”o”]
forEach 遍历,调用数组的每个元素,并传递给回调函数
array.forEach(function(currentValue, index, arr), thisValue)
|
map 映射加转换,不改变原数组
array.map(callback,[ thisObject]);
|
filter 过滤,不改变原数组
array.filter(callback,[ thisObject]);
|
every 对数组每个元素进行判断,必须所有都符合才返回true
some 部分符合即返回true
|
reduce 让数组中的前一项和后一项做某种计算并累计最终值,不改原数组
|
字符串方法
方法 | 说明 |
---|---|
charAt(n) | 返回指定位置的字符串 |
concat() | 连接两个或多个字符串,并返回新的字符串 |
indexOf() | 返回指定字符第一个出现的索引位置,没有则返回-1 |
str.link(url) | 将字符串显示为链接 |
substring( start,[end]) | 截取字符串 |
特殊记忆:
concat(): 和数组方法类似
slice(start,[end]): 剪切字符串,返回被剪切的字符串
split(separator,number): 分割字符串为数组
从 separator 处分割,取 number 个
ES6新增方法:
- includes()判断字符串(数组)是否含有某一字符串(值),返回true或者false;
- startsWith()判断是否以某一字符串开头
- endsWith()判断是否以某一字符串结尾
- repeat(n)将字符串重复n次
常用
字符串模板:一般用于表示多行字符串,使用两个``符号表示,如果包含变量,则将变量写在${}
中