Move an array element from one array position to another
https://stackoverflow.com/a/6470794/802435
by codemeasandwich
HTML
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!--
Bootstrap docs: https://getbootstrap.com/docs
-->
<div class="container">
<div class="row">
<div class="col" onclick="test();" style="cursor:pointer;">
click here to test
</div>
</div>
<div>
<i>Open Console to see results</i>
</div>
</div>
CSS
.row {
background: #f8f9fa;
margin-top: 20px;
}
.col {
border: solid 1px #6c757d;
padding: 10px;
}
JavaScript
function arraymove(arr, fromIndex, toIndex) {
var element = arr[fromIndex];
arr = [...arr]
arr.splice(fromIndex, 1);
arr.splice(toIndex, 0, element);
return arr
}
function test()
{
var AR = ["A", "B", "C", "D", "E", "F"];
console.log(AR);
// var AR2 = AR.slice(); // copy
var N = AR.length;
for(var i=0; i<N; i++)
{
for(var j=0; j<N; j++)
{
console.log("("+i+","+j+")");
var AR2 = AR.slice();
console.log(AR2);
arraymove(AR2, i, j);
console.log(AR2);
arraymove(AR2, j, i);
console.log(AR2);
}
}
}