初入ES6-Array

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]
//參數直接是數組元素,不管多少

copyWithinfill將數組內部元素複製到指定位置,會改變元素this

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數組新的方法prototype

//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
相關文章
相關標籤/搜索