内部值
The InternMap 和 InternSet 类扩展了原生 JavaScript Map 和 Set 类,分别允许使用日期和其他非基本类型作为键,方法是当确定键相等时绕过 SameValueZero 算法。 d3.group、d3.rollup 和 d3.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