2018-08-15
数组
一)ES 3.0
- 改变原数组
push:在数组尾开始插入一个或多个元素,并且返回对应长度的数组。
pop:把数组最后一位剪切出来,并且返回。
shift:和pop相反,它是把数组的第一位剪切出来,并且返回。
unshift :在数组前面添加一个或多个元素,和push反过来使用。
reverse:在原数组上进行反转。
splice: 在数组中截取元素,也可以在截取处添加新元素。
sort: 数组排序。按阿斯克码排序。
copyWithin: 在当前数组内部,将制定位置的数组复制到其他位置,会覆盖原数组项,返回当前数组。
- 不改变原数组
cocat:连接2个数组的方法,返回新数组。
toString : 把数组变成字符串展示出来。
slice:再数组中截取出所需的元素
join: 把数组中的每一位根据你传的参数连接起来,形成一个字符串
split:字符串的方法,按传进来的参数拆成数组,和join相反。
二)ES 5.0
- 改变原数组
无
- 不改变原数组
- indexOf/lastIndexOf
用于查找数组内指定元素位置,查找到第一个后返回其索引,没有查找到返回-1;
indexOf()从头至尾搜索;lastIndexOf()则反向搜索;
- forEach
从头到尾遍历数组,为每个元素调用指定函数
第一个参数:传递的函数
该函数调用的参数:数组元素、元素索引、数组本身
- map
调用数组的每个元素传递给指定的函数,并返回一个包含返回值的新数组;传递给map()的函数有返回值,map()返回新数组,不会修改调用的数组;如果是稀疏数组,返回的也是相同方式的稀疏数组。
ps: arr.forEach()和arr.map()的区别
- arr.forEach()是和for循环一样,是代替for。arr.map()是修改数组其中的数据,并返回新的数据。
- arr.forEach() 没有return arr.map() 有return
- filter
返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加;
新数组只包含返回true的值,索引缺失的不包括,原数组保持不变。
- some/every
every是“所有”函数的每个回调函数都返回true的时候才会返回true,当遇到false的时候终止执行,返回false;
some函数是“存在”有一个回调函数返回true的时候终止执行并返回true,否则返回false;
在空数组上调用every返回true,some返回false。
every():该方法对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回true。
some(): 该方法对数组中的每一项运行给定函数,如果该函数对任何一项返回 true,则返回true。
- reduce/reduceRight
使用指定的函数将数组元素进行组合,生成单个值
参数:1、执行化简操作的函数;2、(可选)参数是传递给函数的初始值
reduce从索引最小值开始,reduceRight反向
三)ES 6.0
- 改变原数组
- fill
方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
- 不改变原数组
- includes
方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false。
- find/findIndex
返回数组中满足提供的测试函数的第一个元素的值/索引。否则返回 undefined。
- from
将伪数组变成数组,就是只要有length的就可以转成数组。