Files
now-deployment/node_modules/now/dist/util/unique-strings.ts
2019-10-17 12:36:15 +09:00

22 lines
794 B
TypeScript

/**
* A fast implementation of an algorithm that takes an array and returns a copy of the array without duplicates.
* We used to use `array-unique` ( https://github.com/jonschlinkert/array-unique/blob/5d1fbe560da8125e28e4ad6fbfa9daaf9f2ec120/index.js )
* but from running benchmarks, found the implementation to be too slow. This implementation has show to be upto ~10x faster for large
* projects
* @param {Array} arr Input array that potentially has duplicates
* @returns {Array} An array of the unique values in `arr`
*/
export default (arr: string[]) => {
const len = arr.length;
const res: string[] = [];
const o: { [key: string]: string | number } = {};
let i: number;
for (i = 0; i < len; i += 1) {
o[arr[i]] = o[arr[i]] || res.push(arr[i]);
}
return res;
};