跳到內容

實習值

InternMapInternSet 類別分別擴充了原生 JavaScript Map 和 Set 類別,允許使用日期和其他非原始鍵,在確定鍵等號時繞過 SameValueZero 演算法d3.groupd3.rollupd3.index 使用 InternMap 而不是原生 Map。

new InternMap(iterable, key)

js
const valueByDate = new d3.InternMap([
  [new Date("2021-01-01"), 42],
  [new Date("2022-01-01"), 12],
  [new Date("2023-01-01"), 45]
]);

範例 · 原始碼 · 建立一個新的 Map,給定指定的 [key, value] 輸入項。金鑰使用指定的 key 函數進行內部化,非原始值預設為 object.valueOf。例如,要擷取由特定日期作為金鑰的值

js
valueByDate.get(new Date("2022-01-01")) // 12

new InternSet(iterable, key)

js
const dates = new d3.InternSet([
  new Date("2021-01-01"),
  new Date("2022-01-01"),
  new Date("2023-01-01")
]);

範例 · 原始碼 · 建立一個新的 Set,給定指定的輸入項值。值使用指定的 key 函數進行內部化,非原始值預設為 object.valueOf。例如,要查詢特定日期

js
dates.has(new Date("2022-01-01")) // true