javascript數組去重函數

模樣以下:javascript

Array.prototype.delrep = function(fun) {
        if(!fun) {
            fun = function(d) {return d;};
        }
        var newArr = [];
        this.sort(function(a, b) {
            return fun(a) > fun(b) ? -1 : 1;
        });
        newArr.push(this[0]);
        this.forEach(function(d) {
            if(fun(d) != fun(newArr[0])) {
                newArr.unshift(d);
            }
        });
        return newArr;
    };

1,對於基本類型數組:前端

[1,2,3,4,5,5,6,6,5].delrep();//輸出[1, 2, 3, 4, 5, 6]

2,對於對象數組:java

var data = [
        {
            name: "aaa",
            value: 123
        },
        {
            name: "bbb",
            value: 234
        },
        {
            name: "aaa",
            value: 789
        }
    ];
console.log(data2.delrep(function(d) {return d.name;}));
//輸出[
        {
            name: "bbb",
            value: 234
        },
        {
            name: "aaa",
            value: 789
        }
    ];

本身寫的供你們當工具函數使用,可能會比冒泡排序那種去重要快一些。
其中一點說明的是對於對象數組,參數是一個函數,這個函數返回用來去重的屬性。數組

但願個人文章能幫助到你,更多資料請翻閱d3js.org,
我是朱現明,任職於精碩科技可視化部門前端開發,更多精彩的文章即將奉上.函數

zhuxianming@admaster.com.cn工具

相關文章
相關標籤/搜索