d3-jsnext
Version:
d3, but futuristic
31 lines (26 loc) • 724 B
JavaScript
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 };