Удаление строки если начало повторяется и вся строка
Мне необходимо в своем проекте, удалять строки, если у них начало повторяется. Пример:
1234.abc
1234.dfg
1234.dfg необходимо удалить, как это можно сделать? Я изначально сделал проверку на дубликат строки, но теперь надо чтобы по началу проверяло и так же полную строку Вот мой код на проверку целой строки на дубликат и её удаление
String.prototype.removeDuplicate = function() {
const set = new Set(this.split('\n'))
return [...set].join('\n')
}
Ответы (1 шт):
Автор решения: ipatev_nn
→ Ссылка
По мотивам ответа на SO: https://stackoverflow.com
function uniq(ar) {
if (ar.length === 0) return ar;
ar = ar.sort(function (a, b) { return a*1 - b*1; });
var ret = [ar[0]];
for (var i = 1; i < ar.length; i++) {
if (ar[i-1].split(".")[0] !== ar[i].split(".")[0]) {
ret.push(ar[i]);
}
}
return ret;
}
console.log(uniq(['1234.abc','1234.dfg','egor.csv','egor.exe','egor.lsx','egor.xlsx']));
//["124", "237", "255", "366"]
Единственное что потребовалось, добавить split в обращении к массиву в операторе сравнения.