1,Array.from用于将对象转为数组(可遍历和类数组对象部署Iterator 属性的对象)
和扩展运算符的区别是任何具有Length属性的都可以使用
var arr = [1,2,3,4];
var set = new Set(arr);
var obj = {
0:23,
2:'name',
length:3
}
//ES5的方法是用原型
Array.prototype.slice.call(obj) //[23, empty × 1, "name"]
Array.from(obj) //[23, undefined, "name"]
//该方法还有一个参数类似ES5的新方法
Array.from(arr,num=>num*3) // [3, 6, 9, 12]
//将字符串转化为数组,特别是大于\uFFFF的单个字符,避免分割成多个
Array.of用来弥补构造函数的歧义
var arr1 = new Array(); //[]
var arr2 = new Array(3); //[ , , ]三个空值只有一个参数其实指定的是数组数量
var arr3 = new Array(3,4) //[3,4]
//以上只有参数大于两个的时候才会生成正确的数组
Array.of(3) //[3]
//参数直接是数组元素,无论多少
copyWithin和fill将数组内部元素复制到指定位置,会改变元素
Array.prototype.copyWithin(target,start,end);//target复制的目标位置,start复制的开始,end结束
var arr = [1,2,3,'a','b','c'];
arr.copyWithin(0,2,4)
arr.fill(3) // [3, 3, 3, 3, 3, 3]抹去所有元素并且填充
arr.fill(ele,star,end) //还有其他的参数指定起始位置
//这个两个方法后面的参数是从start开始包含该位置,end结束,不包含该位置
ES6数组新的方法
//find(fn,[this.obj]);和ES5遍历的方法一样的参数
var arr = [1,2,3,4];
arr.find(x=>x>2); //返回第一个为true的元素,如果没有的话就返回undefined;
//识别是否有元素NaN
var ar = [NaN,2,4];
ar.indexOf(NaN)// -1;
ar.find(x=>(Object.is(NaN,x))) //NaN
//includes(ele,start,end);判段是否包含某个元素后面的参数是开始结束的位置
ar.includes(2) //true;
ar.includes(NaN) //true
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。