从数组(切片)中提取x项,但如果到达则从头开始继续

Han*_*ans 6 javascript arrays slice

让我们说:

var array = [0,1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我定义:

var itemsToExtract  = 5
var startindex = 7
var direction = "forward"
Run Code Online (Sandbox Code Playgroud)

我希望能够做到:

array.someMethod(startindex, itemsToExtract, direction)
Run Code Online (Sandbox Code Playgroud)

得到

[7,8,9,0,1]
Run Code Online (Sandbox Code Playgroud)

如果我将方向设置为"向后"(从右到左切片),我也希望它向后工作.

我不是太懒了,已经尝试了一些东西,请看这里:http://jsfiddle.net/MkNrr/

我正在寻找"更整洁"的东西,如果有的话,这个方法也有名称,这是一个已知的问题吗?

背景:我正在尝试构建一个顺序的预图像加载器(一个图像(src)加载另一个)以用于图像库.也许甚至这样的图书馆已经存在?

Akh*_*ran 0

它不多,但看起来不错JS Bin

function overSlice(arr, start, count, dir){
  if(dir==='backward'){
      arr = arr.reverse();
      start = arr.length-start-1;
  }
   var lastIndex = start+count;
  return arr.slice(start,  lastIndex>arr.length?arr.length: lastIndex)
  .concat(arr.slice(0,  lastIndex>arr.length?lastIndex-arr.length: 0));
}

var arr = [0,1,2,3,4,5,6,7,8,9];
alert(overSlice(arr,7,5,'backward'));
Run Code Online (Sandbox Code Playgroud)