AdiHuang's notes

js-unique.md

js数组去重的方法

Array.prototype.unique = function () {
  var r = []
  var n = {}

  for(var i = 0; i < this.length; i++) {
    var val = this[i]
    var type = typeof val

    if (!n[val]) {
      r.push(val)
      n[val] = [type]
    } else if (n[val].indexOf(type) < 0) {
      r.push(val)
      n[val].push(type)
    }
  }

  return r
}
var arr = [112,112,34,'你好','112',112,34,'你好','str','str1', {}, {}, null, null]

arr.unique() // [112, 34, "你好", "112", "str", "str1", {…}, null]