Drops the elements of an array (first argument), starting from the front, until the predicate (second argument) returns true.
A script by V.
function drop(arr, func) { | |
var passArr = []; | |
var returnArr = []; | |
var startValue = 0; | |
var endValue = 0; | |
var endValuePosition = 0; | |
passArr = arr.filter(func); | |
if (passArr.length > 0){ | |
startValue = passArr[0]; | |
endValue = passArr[passArr.length-1]; | |
endValuePosition = arr.indexOf(endValue); | |
returnArr = arr; | |
if (endValuePosition == arr.length-1){ | |
endValuePosition = 0; | |
} | |
for (var i=0;i<returnArr.length;i++){ | |
if (startValue == returnArr[0]){ | |
returnArr = returnArr; | |
}else{ | |
returnArr.shift(); | |
} | |
} | |
if (endValuePosition > 0){ | |
for(var z=endValuePosition;z<arr.length;z++){ | |
returnArr.push(arr[z]); | |
} | |
} | |
} | |
return returnArr; | |
} | |
drop([1, 2, 3, 7, 4], function(n) {return n > 3;}); |