Skip to content

Instantly share code, notes, and snippets.

@tmcw
Created May 2, 2016 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tmcw/742ca38f2ff2e03cf0a2f92cc0465db5 to your computer and use it in GitHub Desktop.
Save tmcw/742ca38f2ff2e03cf0a2f92cc0465db5 to your computer and use it in GitHub Desktop.
var numbers = [1, 2, 5, 6, 7, 9, 10];
var target = 6;
function takeWhile(arr, fn, cb) {
var out = [];
for (var i = 0; i < arr.length; i++) {
if (fn(arr[i], i)) out.push(arr[i]);
else break;
}
return out;
}
console.log(takeWhile(numbers.slice(numbers.indexOf(target) + 1), function(res, i) {
return res == target + i + 1;
}).concat(takeWhile(numbers.slice(0, numbers.indexOf(target)).reverse(), function(res, i) {
return res == target + i - 1;
})))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment