数组去重

知乎上看到有人去腾讯面试,然后发了面试的js题目,有一个是数组去重

我的土办法

var arr = ['a', 'g', 'q', 'd', 'a', 'e', 'q'];
console.log(arr);

var d = {}
for (var x in arr) {
    d[arr[x]] = 1;
}
arr = []
for (var x in d) {
    arr.push(x);
}
console.log(arr);

别人家的代码 - 高端大气

var arr = ['a', 'g', 'q', 'd', 'a', 'e', 'q'];
Array.prototype.unique = function() {
    for (var i = 0; i < this.length; i++) {
        for (var j = i + 1; j < this.length; j++) {
            if (this[i] == this[j]) {
                this.splice(j, 1);
            }
        }
    }
    return this;
};
console.log(arr.unique());

// 作者: Dreawer
// 链接: https: //zhuanlan.zhihu.com/p/25685164

没有对比就没有伤害

差别在于对api的不熟悉,思维就局限了,常用对象多熟悉:
JavaScript Array 对象