javascript 数组去重

function uniq(array){
    var temp = {}, r = [], len = array.length, val, type;
    for (var i = 0; i < len; i++) {
        val = array[i];
        type = typeof val;
        if (!temp[val]) {//不存在,加上
            temp[val] = [type];
            r.push(val);
        } else if (temp[val].indexOf(type) < 0) {//存在,但没这个类型,加上
            temp[val].push(type);
            r.push(val);
        }
    }
    return r;
}

var aa = [1,2,"2",4,9,"a","a",2,3,5,6,5];
console.log(uniq(aa))
// [1, 2, "2", 4, 9, "a", 3, 5, 6]

构造中间对象

1:["number"]

2:(2) ["number", "string"]

3:["number"]

4:["number"]

5:["number"]

6:["number"]

9:["number"]

a:["string"]

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页