Я бы использовал конструктор с индексным методом для этого:
function LiMover(liParent){
this.kids = liParent.children;
this.move = (index, beforeIndex = null)=>{
const k = this.kids, e = k[index];
if(beforeIndex === null){
liParent.appendChild(e)
}
else{
liParent.insertBefore(e, k[beforeIndex]);
}
return this;
}
}
const liMover = new LiMover(document.querySelector('ul'));
liMover.move(0); // move 0 index (one) after last index
liMover.move(5, 0); // move 5 index (one) back to 0 index
liMover.move(1, 4); // move 1 index (two) to 4 index
liMover.move(3, 5).move(2, 0); // showing return this chain
<ul>
<li>one</li>
<li>two</li>
<li>three</li>
<li>four</li>
<li>five</li>
<li>six</li>
</ul>