ES6-05:數組的擴展
阿新 • • 發佈:2017-12-24
rest 定位 數據 block 個數 開始 n-1 code array 1.增加一個運算符——擴展運算符
ES6對於JavaScript數組對象的擴展,主要是為了增強數組的創建及元素的操作方法;具體來說即一個運算符、數組創建方法、數組元素操作方法、數組屬性操作方法四個方面;
1.增加一個運算符——擴展運算符...
擴展運算符(spread):如同rest參數的逆運算,將一個數組轉換成用逗號分隔的序列,擴展運算符內部調用的是數據結構的Interator接口,因此,主要有Iterator接口的對象,,都可以使用擴展運算符;可替代apply方法;
console.log(...[1,2,3]);//1 2 3 console.log(1,...[2,3,4],5); // 1 2 3 4 5 let a=[1,2,3]; let b=[1,2,3]; a.push([4,5]); // [1,2,3,[4,5]] b.push(...[4,5]);//[1,2,3,4,5]
2. 新增創建方法
Array.from(obj)
:將類數組對象(具有length屬性)、可遍歷對象(包括 Set/Map)轉換成真正的數組;Array.of(arugs)
:將一組值轉換為數組,如:Array.of(3);//[3]
、Array.of(1,2,3);//[1,2,3]
;Array.fill(value,startIndex,endIndex)
:用指定值value來填充數組中指定位置值,若沒有第二、第三個參數,則填充數組中所有空值元素;
3. 新增元素操作方法
Array.copyWithin(targetIndex,startIndex=0,endIndex)
:將當前數組內部制定位置成員復制到其他位置(覆蓋原值),返回新數組,會改變當前數組;Array.find(fn(value,index,arr){},thisObj)
:找出數組中第一個符合條件的成員,若找到,返回true,否則返回false;Array.findIndex(fn(value,index,arr){},thisObj)
:找出數組中第一個符合條件的成員,若找到,返回index,否則返回-1;Array.includes(value,startIndex)
:從數組中指定位置開始,查看數組中是否包含元素value;
4.新增數組屬性方法:
Array.keys()
:獲取數組中所有的鍵名,返回一個遍歷器對象;Array.values()
:獲取數組中所有的值,返回一個遍歷器對象;Array.entries()
:獲取數組中所有的鍵值對,返回一個遍歷器對象;[]
PS:ES6 中對數組中的空位元素,統一處理成undefined;而ES5對空位處理:①map()跳過空位,但保留值;②forEach()、filter()、every()、some()都會跳過空位;③join()、toString()將空位視為undefined,而undefined、null處理成空字符串;
ES6-05:數組的擴展