убрать дубли из массива.
Как убрать дубли?
var array = [ {gID: "11", val: "-200"}, {gID: "22", val: "-200"}, {gID: "11", val: "-200"}, {gID: "22", val: "-200"}, {gID: "33", val: "-200"}, {gID: "22", val: "-200"}, {gID: "66", val: "-200"} ]; на выходе должно быть: var array = [ {gID: "11", val: "-200"}, {gID: "22", val: "-200"}, {gID: "33", val: "-200"}, {gID: "66", val: "-200"}, ]; Какой самый оптимальный способ ? Я написал функцию на 4 строки но она вроде не очень. |
|
Универсальное решение сложное и парой строк там не отделаешься, а если под конкретный случай то примерно так:
Array.prototype.unique = function( comparator ) { if(typeof comparator !== 'function') comparator = function(first, second){return first === second}; var i = this.length, j; while(i--) for(j = i; j--;) if(comparator(this[i], this[j])) this.splice(j, 1); return this; } var array = [ {gID: "11", val: "-200"}, {gID: "22", val: "-200"}, {gID: "11", val: "-200"}, {gID: "22", val: "-200"}, {gID: "33", val: "-200"}, {gID: "22", val: "-200"}, {gID: "66", val: "-200"} ]; array.unique(function(first, second){ return first.gID === second.gID && first.val === second.val }); alert(JSON.stringify(array, 0, '\t')) |
Часовой пояс GMT +3, время: 22:55. |