我在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.
这是一个奇特的例子:
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