js中api是什麼意思
集合只是一個將多個元素組合成一個單元的物件。它也被稱為容器。本章詳細介紹了集合 API。
配置API
可以使用以下指令碼配置 API。
集合 API 方法
集合 API 包含物件、對映、集合和巢狀。以下是最常用的集合 API 方法。
- Objects API
- Maps API
- Sets API
- Nests API
讓我們詳細介紹每個 API。
Object API
Object API 是重要的資料型別之一。它支援以下方法 -
- d3.keys(object) - 此方法包含物件屬性鍵並返回屬性名稱陣列。
- d3.values(object) - 此方法包含物件值並返回一個屬性值陣列。
- d3.entries(object) - 此方法用於返回包含指定物件的鍵和值的陣列。每個條目都是一個具有鍵和值的物件。
讓我們考慮以下程式碼。
d3.entries({one: 1})
這裡,key 為 one,value 為 1。
D3 collection APIvar month = {"jan": 1, "Feb": 2, "mar": 3, "apr": 4}; console.log(d3.keys(month)); console.log(d3.values(month)); console.log(d3.entries(month));
在瀏覽器控制檯中顯示結果如下
Map Api
對映包含基於鍵值對的值。每個鍵值對都稱為一個條目。Map 僅包含唯一鍵。基於鍵搜尋、更新或刪除元素很有用。讓我們詳細瞭解各種 Maps API 方法。
- d3.map([object[, key]]) - 此方法用於建立新地圖。物件用於複製所有可列舉的屬性。
- map.has(key) - 此方法用於檢查地圖是否具有指定鍵字串的條目。
- map.get(key) - 此方法用於返回指定鍵字串的值。
- map.set(key, value) - 此方法用於設定指定鍵字串的值。如果對映先前具有相同鍵字串的條目,則舊條目將替換為新值。
- map.remove(key) - 用於刪除地圖條目。如果未指定鍵,則返回 false。
- map.clear() - 從此地圖中刪除所有條目。
- map.keys() - 返回此對映中每個條目的字串鍵陣列。
- map.values() - 返回此地圖中每個條目的值陣列。
- map.entries() - 返回此對映中每個條目的鍵值物件陣列。
- (x) map.each(function) - 此方法用於為地圖中的每個條目呼叫指定的函式。
- (xi) map.empty() - 當且僅當此地圖具有零個條目時才返回 true。
- (xii) map.size() - 返回此地圖中的條目數。
D3 collection APIvar month = d3.map([{name: "jan"}, {name: "feb"}], function(d) { return d.name; }); console.log(month.get("jan")); // {"name": "jan"} console.log(month.get("apr")); // undefined console.log(month.has("feb")); // true var map = d3.map().set("fruit", "mango"); console.log(map.get("fruit")); // mango console.log(map.remove("fruit")); // remove key and return true. console.log(map.size()); // size is 0 because key removed. console.log(map.empty()); // true
同樣,您也可以執行其他操作。
Sets API
Set 是一個不能包含重複元素的集合。它對數學集合抽象進行建模。讓我們詳細瞭解各種 Sets API 方法。
- d3.set([array[, accessor]]) - 此方法用於建立一個新集合。陣列用於新增字串值。訪問器是可選的。
- set.has(value) - 此方法用於檢查集合是否具有指定值字串的條目。
- set.add(value) - 用於將指定的值字串新增到集合中。
- set.remove(value) - 用於刪除包含指定值字串的集合。
- set.clear() - 從此集合中刪除所有值。
- set.values() - 此方法用於將值陣列返回到集合。
- set.empty() - 當且僅當此集合具有零值時才返回 true。
- set.size() - 返回此集合中值的數量。
D3 collection APIvar fruits = d3.set().add("mango") .add("apple").add("orange"); console.log(fruits.has("grapes")); // return false. console.log(fruits.remove("apple")); //true console.log(fruits.size()); // size is 2 console.log(fruits.empty()); // true
同樣,我們也可以執行其他操作。
Nested Api
巢狀 API 包含陣列中的元素並以分層樹結構執行。讓我們詳細瞭解各種 Nests API 方法。
- d3.nest() - 此方法用於建立一個新的巢狀。
- nest.key(key) - 此方法用於初始化新的鍵函式。此函式用於呼叫輸入陣列中的每個元素並返回組中的元素。
- nest.sortKeys(comparator) - 此方法用於對指定比較器中的鍵進行排序。函式定義為 d3.ascending 或 d3.descending。
- nest.sortValues(comparator) - 此方法用於對指定比較器中的值進行排序。比較器函式對葉元素進行排序。
- nest.map(array) - 此方法用於應用指定的陣列並返回巢狀對映。返回對映中的每個條目對應於第一個鍵函式返回的不同鍵值。條目值取決於註冊的鍵功能的數量。
- nest.object(array) - 此方法用於將巢狀運算子應用於指定的陣列並返回巢狀物件。
- nest.entries(array) - 此方法用於將巢狀運算子應用於指定的陣列並返回鍵值條目陣列。
D3 Nest APIvar data = [ { "color" : "red", "key" : 1 }, { "color" : "green", "key" : 2 }, { "color" : "blue", "key" : 75 } ] var nest = d3.nest() .key(function (d) { return d.color; }) .entries(data); console.log(nest); var filter = nest.filter(function (d) { return d.key === 'red' }) console.log(filter);
上述程式碼執行結果如下