Array.unique
25 Июнь 2010
Может пригодиться кому. Это реализация unique метода основанная на filter и lastIndexOf из JavaScript 1.6 . А для тех кто не поддерживает современных стандартов имплементация и этих методов.
Array.prototype.lastIndexOf = function(n, f){
for (var l = this.length, j = ~~f, i = (1 in arguments && j <= l) ? j < 0 ? j + l : j : l - 1; i > -1; i--){
if (i in this && this[i] === n){
return i;
}
}
return -1;
}
Array.prototype.filter = function(fn, obj){
for (var l = this.length, i = 0, a = []; i < l; i++) {
fn.apply(obj, [this[i], i, this]) && a.push(this[i]);
}
return a;
}
Array.prototype.unique = function(){
return this.filter(function(e,i,a){
return a.lastIndexOf(e) == i;
});
}
Categories: JavaScript, Программирование
Свежие комментарии