数组和字符串的方法
首先要明白他们公有的方法join,slice,indexOf,concat,splice
一.数组
1.增
增:arr.unshift() /push() 前增/后增
都是直接修改原有数组。
unshift()会返回数组的新长度。
push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
2.删
删:arr.shift() /pop() 前删/后删
shift()只能删除第一个元素,返回值是被删除的元素。
pop() 方法用于删除并返回数组的最后一个元素。
要是数组为空,则返回undefined 。
3.改
改:arr.splice(开始下标,删除的长度,增加的元素,增加的元素)
splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改。
splice(7,1)删除数组索引为7的位置的一个元素,splice(7,1)[0]才可以返回9;splice(7,1)直接返回的是[9].
4.截
截: arr.slice(开始下标,结束下标)
arrayObject.slice(start,end)可以和indexOf一起使用完成切割
返回一个新的数组,包含从 start 到 end (不包括该元素)
5.拼
arr.concat(元素,元素,元素)
concat() 方法用于连接两个或多个数组。也可以连接字符串。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符(也就是join后面的()来进行分隔符设置)进行分隔的。
6.复
复:forin / slice / concat / map /forEach
注: ES5新增的复制方法都没for循环效率高
7.排
arr.reverse()逆序输出
arr.sort([a-b])该方法没有参数时按照字符编码的顺序进行排序
a-b从小到大,b-a从大到小
function sortNumber(a,b)
{
return a - b
}
document.write(arr.sort(sortNumber))
8.转
arr.toString() 转为以逗号分隔的字符串 / 转换进制
arr.join('分隔符'),转为字符串
截、拼、转不影响原数组
9.es5新增加的方法,es5的方法不影响元素组
1、indexOf(查找的元素,开始查找的下标):
从某个下标开始查找这个元素第一次出现的位置。 查不到返回-1。
2、 lastindexOf(查找的元素,下标): 从后往前查找
3、forEach() 遍历数组
forEach和map方法只能遍历数组,forin遍历数组和对象。
forEach 方法按升序为数组中含有效值的每一项执行一次callback 函数,
callback接受三个参数(currentValue,index,array)
-
currentValue数组中正在处理的当前元素。
-
index可选数组中正在处理的当前元素的索引。
-
array可选
是正在操作的数组。
-
thisArg可选可选参数。当执行回调函数时用作
this的值(参考对象)。
arr.forEach(callback[, thisArg]);
4、map
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
var array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
console.log(map1);
5.reduce
**reduce()** 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。
[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
感觉很像递归
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
callback里面执行数组中每个值的函数,包含四个参数:
- accumulator
累计器累计回调的返回值; 它是上一次调用回调时返回的累积值,或initialValue(见于下方)。
-
currentValue数组中正在处理的元素。
-
currentIndex可选数组中正在处理的当前元素的索引。 如果提供了
initialValue,则起始索引号为0,否则为1。 -
array可选调用
reduce()的数组 -
initialValue可选
作为第一次调用 callback函数时的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。
6.filter()
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
var arr = [1,6,4,4,8,9,33];
var list =arr.filter(function(value){
return value >6
})
7.some
二.字符串
1.查
charAt(index):根据 下标查找指定的字符,下标找不到时,输出空。
charCodeAt(index):根据下标查找指定的字符的编码值 。下标超出范围时,输出NAN
indexOf方法可返回某个指定的字符串值在字符串中首次出现的位置。str.indexOf("Hello")如果要检索的字符串值没有出现,则该方法返回 -1。同理有lastindexOf()
2.替
replace(旧串,新串)
替换成新的字符串, 一次只能替换一个
3.截
后面的end不截 ,substring()与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数。
substring:(start,end)
支持参数互换(3,4)(4,3),end可以省略则一直截取到最后。
substr:(start,length) 从指定位置提取length长度。
slice:(start,end) 支持负数(从右往左数,-1至-10等等)
与数组类似,第一个字符的位置为0,以此类推
4.转
toUpperCase():小写字母转大写字母
toLowerCase():大写字母转小写字母
split(分隔符,截取的长度) : 将字符串转为数组
5.拼
直接使用加号
用join
用自己的方法。
6.拓展方法
1、字符串对象.match(正则表达式) : 如果字符串中包含了正则表达式的内容,返回数组,否则,返回null,
2、字符串对象.search(正则表达式) : 类似于indexOf(),查找正则匹配的内容在字符串中第一次出现的下标位置,如果没有找到,返回-1