unique element in array objects
HTML
<div id="output">Output</div>
JavaScript
function ArrayUtil() {}
ArrayUtil.unique = function (arr) {
var hash = {}, result = [];
for ( var i = 0, l = arr.length; i < l; ++i ) {
//it works with objects! in FF, at least
if ( !hash.hasOwnProperty(arr[i]) ) {
hash[ arr[i] ] = true;
result.push(arr[i]);
}
}
return result;
}; //function ArrayUtil.unique(arr)
ArrayUtil.pointsArrayToString = function(points) {
var pointsString, pointsIt;
pointsString = '[';
pointsIt = 0;
_.each(points, function(point) {
pointsString += ArrayUtil.coordinatesToString(point);
if( pointsIt < (points.length - 1) ) {
pointsString += ', ';
}
pointsIt++;
});
pointsString += ']';
return pointsString;
};
ArrayUtil.coordinatesToString = function(coordinates) {
return '[' + coordinates[0] + ',' + coordinates[1] + ']';
};
var dupArray = [[2,3], [2,4], [2,5], [2,5], [2,6], [2,7], [2,4], [2,5], [2,6]];
var uniqArray = ArrayUtil.unique(dupArray);
var output = document.getElementById('output');
output.innerHTML = ArrayUtil.pointsArrayToString(uniqArray);