UNPKG

d3-jsnext

Version:
31 lines (26 loc) 724 B
import { d3_map_unescape, d3_map_empty, d3_map_size, d3_map_keys, d3_map_remove, d3_map_escape, d3_map_has } from './map'; import { d3_class } from '../core/class'; var d3$set; d3$set = function(array) { var set = new d3_Set; if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]); return set; }; function d3_Set() { this._ = Object.create(null); } d3_class(d3_Set, { has: d3_map_has, add: function(key) { this._[d3_map_escape(key += "")] = true; return key; }, remove: d3_map_remove, values: d3_map_keys, size: d3_map_size, empty: d3_map_empty, forEach: function(f) { for (var key in this._) f.call(this, d3_map_unescape(key)); } }); export { d3$set, d3_Set };