JSFiddle - React, Tailwind, and code Playground
by Евгений
HTML
<a href="http://javascript.ru/forum/job/48912-skript-sortirovshhik-href%3D.html" target="_blank">http://javascript.ru/forum/job/48912-skript-sortirovshhik-href%3D.html</a>
<textarea id="src-text">
<li><a href="http://golifehack.ru/podstavka-planshet">самодельная подставка для планшета</a></li>
<li><a href="http://golifehack.ru/tag/iphone">лайфхак для айфона</a></li>
<li><a href="http://golifehack.ru/sovet-ipad-two">как подключить смайлики на айпаде</a></li>
<li><a href="http://golifehack.ru/podstavka-planshet">самодельная автомобильная подставка для планшета</a></li>
<li><a href="http://golifehack.ru/perevernut-ekran-noutbuke">acer перевернулся экран</a></li>
<li><a href="http://golifehack.ru/perevernut-ekran-noutbuke">асер как перевернуть экран</a></li>
</textarea>
<input id="len" type="number" value="5" />
<button id="go" onclick="urlSplitter(document.querySelector('#src-text').value, document.querySelector('#len').value)">Генерировать</button>
CSS
textarea {
width: 100%;
height: 200px;
}
JavaScript
function urlSplitter(txt, len) {
var objAll = [],
objGroups = [],
tempHref,
tempLi,
isFound;
var ul = document.createElement('ul');
ul.innerHTML = txt;
var urls = ul.querySelectorAll('li');
for (var i = 0; i < urls.length; i++) {
tempLi = urls[i].outerHTML;
tempHref = urls[i].querySelector('a').href;
isFound = false;
groups: for (var j = 0; j < objGroups.length; j++) {
if (objGroups[j].length >=5) continue;
items: for (var k = 0; k < objGroups[j].length; k++) {
if(objGroups[j][k][0] == tempHref) continue groups;
}
}
console.log('i: ' + i + '; j: ' + j + '; k: ' + k + '; ' + tempHref);
if (objGroups[j] === undefined) objGroups[j] = [];
objGroups[j].push([tempHref, tempLi]);
}
console.log(objGroups.join('-----------------------------'));
}