Move element to start of array
by Jorge Bustos Pereda
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.1/lodash.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<p>Original:</p>
<pre id="original"></pre>
<p>After 3 to start: moveToStart(list, function(e) { return e == 3;})
<pre id="moved3"></pre>
<p>After even numbers to start: moveToStart(list, function(e) { return e%2 == 0;})</p>
<pre id="movedEven"></pre>
<p>After non-existen number to start: moveToStart(list, function(e) { return e == 500;})</p>
<pre id="moved500"></pre>
CSS
p {
font-family: Segoe, Arial;
font-weight: bold;
margin: 15px 0 0 0;
}
pre {
margin: 0;
}
JavaScript
var list = [1,2,3,4,5];
var moveToStart =function(list, predicate) {
var found = _.remove(list, predicate);
list.unshift.apply(list, found);
};
$('#original').text(JSON.stringify(list));
moveToStart(list, function(e) { return e == 3;})
$('#moved3').text(JSON.stringify(list));
moveToStart(list, function(e) { return e%2 == 0;})
$('#movedEven').text(JSON.stringify(list));
moveToStart(list, function(e) { return e == 500;})
$('#moved500').text(JSON.stringify(list));