UNPKG

d3plus-common

Version:

Common functions and methods used across D3plus modules.

22 lines 807 B
/** @function unique @desc ES5 implementation to reduce an Array of values to unique instances. @param {Array} arr The Array of objects to be filtered. @param {Function} [accessor] An optional accessor function used to extract data points from an Array of Objects. @example <caption>this</caption> unique(["apple", "banana", "apple"]); @example <caption>returns this</caption> ["apple", "banana"] */ export default function (arr) { var accessor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (d) { return d; }; var values = arr.map(accessor).map(function (d) { return d instanceof Date ? +d : d; }); return arr.filter(function (obj, i) { var d = accessor(obj); return values.indexOf(d instanceof Date ? +d : d) === i; }); }