uniq
uniq() -> newArray
返回去除数组重复元素后的版本。如果没有重复的元素,返回原始数组本身。
样例
['Sam', 'Justin', 'Andrew', 'Dan', 'Sam'].uniq();
// -> ['Sam', 'Justin', 'Andrew', 'Dan']
['Prototype', 'prototype'].uniq();
// -> ['Prototype', 'prototype'] 因为字符串比较是区分大小写的
性能考虑
对于具有重复元素的大数组,该方法有巨大的潜在性能开销。
- 因为它不要求数组已排序,所以它的复杂度为 O(n^2)
-
因为该方法代码中使用了 JavaScript 的
Array.concat
方法,所以在遇到一个新值(不在已有的结果数组中的值)时, 会产生一个新的临时数组用于暂存中间结果。
可以设计更为有效的实现,如果一个好的优化方案被认可,将会同步更新该页的内容。