获取数组javascript的子数组

big*_*ata 0 javascript arrays

我在javascript中有一个数组,我想要一个元素的子数组,其元素位于位置n*3,n = 0,1,2 ..例如,如果:

var arr = [1,2,3,4,5,6,7,8,9,10,11,12]

var subArr = [1,4,7,10]
Run Code Online (Sandbox Code Playgroud)

编辑:没有循环的任何soln.

Den*_*ret 6

这是一个奇特的例子:

var brr = [1,2,3,4,5,6,7,8,9,10,11,12].filter(function(_,i){ return !(i%3) })
Run Code Online (Sandbox Code Playgroud)

但是一个简单的循环一样好(并且与IE8兼容).请注意filter,即使是不可见的,循环的阵列上.即使您可能伪装它,也无法避免循环(至少对于任意大小的数组).


以下是使用标准循环的方法:

var brr = [];
for (var i=0; i<arr.length; i+=3) brr.push(arr[i])
Run Code Online (Sandbox Code Playgroud)

性能很少是客户端此类操作的关注点,但您可能会发现重要的是知道for循环在这里更快:http://jsperf.com/looporfilter