一,数组扩展
1,Array.from()
作用:用于将两类对像转为数组(类数组对象array-like-object,可遍历对象iterable)
语法:
let divs = documentsByTagName('div);
var dArr = Array.from(divs);
function ff(){
var arr = Array.from(arguments);
}
from 方法还可以接受第二个参数,作用类似于map放,用来对每一个元素就行处理,将结果
放进新的数组中,映射
from 可以将各种值转为数组,拥有map功能,只要有一个原始的数据解构,就可以先对他
进行处理,然后转为一个标准的数组,最后就可以使用新数组调用数组的各种方法
from 将字符串转为数组,返回字符串长度,使用es5方法split 转会将大于 \uffff的
unicode编码认为是两个字符使用from,由于其可以识别各种unicode 编码,可以避免将大
于 \uffff的编码算作两个字符串bug
2,Array.of()
作用:用于将一组值转为数组,这个方法主要用于弥补Array()构造函数的不足之处(Array() 构造函数会
因为参数个数的不同处理有所差异,参数大于2时才会生成真正的数组)所以使用of替代Array(),Array.of()
总会返回一个新数组,如果没有参数就是个空数组
3,copyWidthin()
这个方法是数组实例化对象的方法,作用是将当前数组内部指定的成员复制到其他的位置(会覆盖原来的成员)
然后返回当前数组,这个方法会修改原数组
语法:
[1,2,3,4,5].copyWidthin(target,start,end);
target:必须,从这个位置开始替换
start:可选,从这个位置开始读取,默认0,负值表示倒着取,最后一个值就是-1,
end:可选,表示到这个位置读取结束,默认值数组长度,负值倒序,不包含这个位置
4,find() 和 findIndex()
数组实例化的方法find,用于找出第一个复合条件的成员,参数是回调函数,原理:将所有
元素一次执行该回调,找到第一个返回true的元素,并将该元素返回,结束遍历,如果没找到
,反回undefined
find() 可以接受三个参数,依次是 值 下标 原数组
findIndex() 数组实例化对象的方法,用法与find一样,返回第一个复合条件元素的下标,
如果没有找到符合条件的元素,返回-1
5,fill()
使用给定的值,填充一个数组,fill方法用于空数组初始化非常方便,数组中已有的元素全部
会被抹除
fill() 方法可以接受三个参数:
[1,2,3,4,5,6,7].fill('a',3,5)
后2个参数用于指定填充的位置
使用a将3 -5的位置填充,不包括5
6,includes();
返回一个布尔值,用于判断数组中是否包含某一个元素,包含返回真,不包含返回假,与字符串
的includes方法类似
接受第二个参数表示从那个位置开始搜索,默认为0,负数表示倒序,如果超出数组长度,则认为
是从0开始
7,数组空位
数组的空位指的是在数组的某个位置上没有任何值,new Array(3) //[,,]
注意:空位不是undefined,如果一个位置上是undefined,说明这个位置是有值的
es5中,对空位的处理很不一致,大多数情况会跳过:
forEach(),filter(),every(),some()等遍历方法都会跳过空位
map()会跳过空位,但会保留这个值
join()和toString()会将空位视为undefined,而真正的undefined和null将会被
处理为空字符串
es6中,所有的空都是undefined
注意:由于数组中出现空值会影响数组使用,处理方法不一致,所以工作过程中尽量避免数组出现空值
数组的扩展
最新推荐文章于 2022-10-27 23:33:55 发布