io.js 的 ES6 Collection 支援 - Set
io.js 不做任何設定下,預設支援了一些 ECMAScript 6 的語法,其中包括一系列的 Collection 支援,這讓 JavaScript 在資料操作上多了一些方便之處。本文將討論到的 Set 物件,就是其中一個 Collection 類別。
簡單來說,Set 是一個類似 Array 的物件型態,可以用於處理有序的資料,而且內建迭代器(Iterator:在某些應用上同樣功能也會稱之游標 Cursor),讓開發者可以很容易對資料進行一筆筆的處理。
比較特別的是,如果要依序印出 Set 物件內的所有資料,需要使用『of』這個關鍵字。原因是 Set 物件本身是一個 Generator 實作所致,如果我們想要一次把 Generator 內的工作跑完,需要運用 for-loop 加上 of 關鍵字來達成。
註:關於 Generator 與 of 關鍵字,日後有空再撰文說明其細節。總之,只要記得必須使用 of 關鍵字才能一一讀取 Set 物件內的資料,就像 Array 的 for-loop 加上 in 關鍵字。
若是要清空資料,可以使用 clear() 方法:
簡單來說,Set 是一個類似 Array 的物件型態,可以用於處理有序的資料,而且內建迭代器(Iterator:在某些應用上同樣功能也會稱之游標 Cursor),讓開發者可以很容易對資料進行一筆筆的處理。
基本操作
基本的 Set 物件使用很簡單,如下所示: // 建立一個新的 Set var items = new Set(); // 依序加入資料 items.add('Fred'); items.add('Stacy'); items.add('Wesley'); items.add('Rance'); items.add('Kevin'); items.add('Alex'); // 依序印出 Set 物件內的所有資料 for (var item of items) { console.log(item); }
註:關於 Generator 與 of 關鍵字,日後有空再撰文說明其細節。總之,只要記得必須使用 of 關鍵字才能一一讀取 Set 物件內的資料,就像 Array 的 for-loop 加上 in 關鍵字。
刪除資料
刪除特定資料可以使用 remove() 方法來達成,如下所示:items.remove('Wesley');
items.clear();
檢查資料是否存在
我們可以直接利用 has() 方法檢查特定資料是否存在:items.has('Rance');
迭代器(Iterator)的使用
Set 的迭代器是圍繞著 Generator 來實作,所以當我們想要利用 Set 的迭代器,可以使用 values() 方法來取得一個新的迭代器,然後開始對資料進行一筆筆的操作:var iter = items.values(); // 印出 Fred console.log(iter.next().value) ; // 印出 Stacy console.log(iter.next().value) ;
留言
張貼留言