数组的扩展

1、数组扩展
1.Array.from()
做用:用于将类数组对象转为标准数组(类数组对象Array-like-object,可遍历的对象 iterable)
语法:
var doms = document.getElementsByTagName('div');
console.log(doms, [].slice.call(doms), Array.from(doms));
function ff(){
var arr=Array.from(arguments);
}es6

from方法能够接受第二个参数,做用相似于map,用来对数组的每个元素进行处理,将结果放入一个新的数组中(映射)
from能够将各类值转为数组,拥有map的功能,只要有一个原始的数组解构,就能够先对其进行处理,而后转为一个标准的数组,最后可使用新数组调用数组的各类方法
from将字符串转为数组,返回字符串长度
使用es5如何将字符串转为数组? split 使用split转的话。会将大于\uffff的unicode编码认为是两个字符
使用from。因为其能够识别各类unicode编码,能够避免将大于\uffff的编码算做两个字符的bug
2.Array.of()
用于将一组值转为数组,定义数组,主要用于弥补Array()构造函数的不足之处(Array()构造函数会由于参数的不一样,作不一样的处理,参数个数大于2,才能真正的生成一个数组)
若是使用of替代Array(),Array.of()总会返回一个新的数组,若是没有参数就是一个空数组
3.copyWithin()该方法是数组实例化的方法,做用:将当前数组内部指定范围内容的成员复制到其余位置(会覆盖其余位置的元素)
语法:[1,2,3,4].copyWithin(target,start,end)
target:必须,从这个位置开始替换
start:可选,从这个位置开始读取,默认是0,负值表示倒着数,最后一个元素表示-1
end:可选,表示读取大这个位置结束,默认值是数组的长度,负值表示倒序。不包含这个位置的元素
eg:[1,2,3,4,5,6,7,8,9].copyWithin(6,0,3);
==>[1,2,3,4,5,6,1,2,3]数组


4.find()和findIndex()
数组实例化方法,用于找出第一个复合条件的元素,参数是回调函数
原理:将全部元素一次执行回调函数,找到第一个返回true的元素,并将该元素返回,结束遍历,若是没有找到返回出的元素,结果返回undefined
find方法的回调函数 能够接受三个参数。分别是:值,下标,原数组;
findIndex()数组实例化对象的方法,用法与find同样,返回第一个复合条件的元素的下标,若是没有找到符合条件的元素,返回-1
5.fill() 填充
使用给定的值,填充一个数组,fill方法用于空数组初始化很是方便,数组中已经有的元素将会被所有抹掉
fill()有三个参数“
[1,2,3,4,5,6].fill('a',3,5);
a:表示填充的内容
3,5:表示填充的开始和结束位置,包括3不包括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
注意:因为数组中出现空值会影响数组的使用,处理方法不一致,全部工做过程当中尽量避免出现空值dom

相关文章
相关标签/搜索