JavaScript
const t0 = [
["John Doe", "Doe Industries", "john.doe.88"],
["John Doe", "Doe Limited", "john.doe.88"],
["Aohn Doe", "Doe Limited", "john.doe.88"],
["John Doe", "Doe Industries", "thejohn"],
["Jane Doe", "Doe Industries", "jane"],
["John Doe2", "Doe Industries", "john.doe.88"],
["John Doe2", "Doe Industries", "thejohn"],
["John Doe2", "Doe Industries", "johnie"],
["John Doe1", "Doe Industries", "john.doe.881"],
["John Doe1", "Doe Industries", "thejoh1n"],
["John Doe1", "Doe Indust", "thej"]
];
const t1 = [["John Doe", "Doe Industries", "john.doe.88"], ["John Doe", "Doe Limited", "john.doe.88"]];
const t2 = [["John Doe", "Doe Industries", "john.doe.88"], ["John Doe", "Doe Industries", "thejohn"]];
const t3 = [["John Doe", "Doe Industries", "john.doe.88"], ["John Doe", "Doe Industries", "thejohn"], ["John Doe", "Doe Limited", "john.doe.88"]];
const t4 = [["John Doe", "Doe Industries", "john.doe.88"], ["Jane Doe", "Doe Industries", "jane"]];
const t5 = [[], [], ["John Doe", "Doe Industries"]];
const t6 = 'rest';
function handleDuplicates(users) {
// check input data
if (!Array.isArray(users) || !users.length) {
return false;
}
const usersReturned = [];
const _userArrayNotChecked = users.slice(0).splice(0, 100);
// remove not correct data
const _userArray = _userArrayNotChecked.filter((el) => {
let result = true;
if (el.length < 3) {
result = false;
} else {
el.forEach((value) => {
if (value.length < 3) {
result = false;
}
});
}
return result;
});
if (_userArray.length === 0) {
return false;
}
const _usersBySameName = [[]];
// sort common array users;
_sortByName(_userArray, 0);
// sort user by the same name
_userArray.forEach((item, index, array) => {
let _usersBySameNameLastCollection = _usersBySameName.length - 1;
if (index === 0) {
_usersBySameName[_usersBySameNameLastCollection].push(item);
} else {
//...