模样以下: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工具