JSFiddle - React, Tailwind, and code Playground
by bonneville
HTML
<h3>Input Array</h3>
<div id='ar'></div>
<h3>Sorted Array</h3>
<div id='sortedAr'></div>
<h3>Removed Duplicates</h3>
<div id='noDupsAr'></div>
JavaScript
var ar = [
'text1,abc,text2',
'text3,cde,text4',
'text5,abc,text6',
'text7,gfh,text8',
'text9,cde,text10'
];
var sortOnMiddleText = function (n, m) {
var nAr = n.split(',');
var mAr = m.split(',');
if (nAr[1] < mAr[1]) { return -1; }
if (nAr[1] > mAr[1]) { return 1; }
return 0;
};
var removeDups = function(sortedAr) {
var noDups = [];
var len = sortedAr.length - 1;
if (len >= 0) {
for (var i = 0; i < len; i++) {
if (sortedAr[i].split(',')[1] !== sortedAr[i+1].split(',')[1]) {
noDups.push (sortedAr[i]);
}
}
noDups.push (sortedAr[len]);
}
return noDups;
};
// Sort and then remove duplicates:
var sortedAr = ar.sort(sortOnMiddleText);
var noDupsAr = removeDups(sortedAr);
$('#ar').text(ar.join(', '));
$('#sortedAr').text(sortedAr.join(', '));
$('#noDupsAr').text(noDupsAr.join(', '));