跳至内容

内部值

The 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,该 Map 由指定的 [key, value] 项的 iterable 给出。键使用指定的 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,该 Set 由指定的 iterable 的值给出。值使用指定的 key 函数进行内部化,该函数默认为 object.valueOf(针对非基本类型的值)。例如,要查询给定日期

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