Array.uniq - Prototype JavaScript 框架

Xunxin Prototype API

uniq

uniq() -> newArray

返回去除数组重复元素后的版本。如果没有重复的元素,返回原始数组本身。

样例

['Sam', 'Justin', 'Andrew', 'Dan', 'Sam'].uniq(); 
// -> ['Sam', 'Justin', 'Andrew', 'Dan'] 
['Prototype', 'prototype'].uniq(); 
// -> ['Prototype', 'prototype'] 因为字符串比较是区分大小写的 

性能考虑

对于具有重复元素的大数组,该方法有巨大的潜在性能开销。

  • 因为它不要求数组已排序,所以它的复杂度为 O(n^2)
  • 因为该方法代码中使用了 JavaScript 的 Array.concat 方法,所以在遇到一个新值(不在已有的结果数组中的值)时, 会产生一个新的临时数组用于暂存中间结果。

可以设计更为有效的实现,如果一个好的优化方案被认可,将会同步更新该页的内容。