Remove duplicates from JSON string
by Mark Beharrell
HTML
With Duplicates:<br/>
<textarea class="dirty">[{"abbrev": "^1.1.1",
"accepts": "^1.3.5",
"acorn": "^6.0.5",
"acorn-dynamic-import": "^4.0.0",
"acorn-jsx": "^5.0.1",
"acorn-node": "^1.6.2",
"acorn-to-esprima": "^2.0.8",
"acorn-walk": "^6.1.1",
"ajv": "^6.6.2",
"align-text": "^1.0.2",
"alter": "^0.2.0",
"amdefine": "^1.0.1",
"ansi": "^0.3.1",
"ansi-align": "^3.0.0",
"ansi-escapes": "^3.1.0",
"ansi-regex": "^4.0.0",
"ansi-styles": "^3.2.1",
"ansicolors": "^0.3.2",
"ansistyles": "^0.1.3",
"anymatch": "^2.0.0",
"aproba": "^2.0.0",
"archy": "^1.0.0",
"are-we-there-yet": "^1.1.5",
"argparse": "^1.0.10",
"arr-diff": "^4.0.0",
"arr-flatten": "^1.1.0",
"arr-union": "^3.1.0",
"array-each": "^1.0.1",
"array-filter": "^1.0.0",
"array-find-index": "^1.0.2",
"array-flatten": "^2.1.2",
"array-includes": "^3.0.3",
"array-index": "^1.0.0",
"array-map": "^0.0.0",
"array-reduce": "^0.0.0",
"array-slice": "^1.1.0",
"array-union": "^1.0.2",
"array-uniq": "^2.0.0",
"array-unique": "^0.3.2",
"arrify": "^1.0.1",
"asap": "^2.0.6",
"asn1": "^0.2.4",
"assert-plus": "^1.0.0",
"assign-symbols": "^2.0.2",
"ast-traverse": "^0.1.1",
"ast-types": "^0.11.7",
"astral-regex": "^1.0.0",
"async": "^2.6.1",
"async-each": "^1.0.1",
"async-some": "^1.0.2",
"asynckit": "^0.4.0",
"atob": "^2.1.2",
"auto-prefixer": "^0.4.2",
"autoprefixer": "^9.4.4",
"aws-sign2": "^0.7.0",
"aws4": "^1.8.0",
"azure-common": "^0.9.20",
"azure-mobile-apps": "^4.0.1",
"azure-odata-sql": "^0.2.0",
"azure-query-js": "^0.1.0",
"azure-sb": "^0.10.6",
"b64": "^4.1.2",
"babel-code-frame": "^6.26.0",
"babel-core": "^6.26.3",
"babel-eslint": "^10.0.1",
"babel-generator": "^6.26.1",
"babel-helpers": "^6.24.1",
"babel-messages": "^6.23.0",
...
CSS
textarea {
width:400px;
height:200px;
}
JavaScript
jQuery(".process").click( function() {
var dirty = JSON.parse( jQuery(".dirty").val().trim() );
var cleaned = removeDuplicates(dirty);
console.log(cleaned);
jQuery(".clean").val( JSON.stringify(cleaned) );
});
/*
* Function from http://stackoverflow.com/questions/21951115/remove-duplicate-values-from-json-data. Answered by Tushar Gupta
*/
function removeDuplicates(json_all) {
var arr = [],
collection = [];
$.each(json_all, function (index, value) {
if ($.inArray(value.id, arr) == -1) {
arr.push(value.id);
collection.push(value);
}
});
return collection;
}