基于奇数/偶数位置将数组拆分为两个数组

Run*_*tle 17 javascript coffeescript

我有一个阵列Arr1 = [1,1,2,2,3,8,4,6].

如何根据元素位置的奇数/偶数将其拆分为两个数组?

subArr1 = [1,2,3,4]
subArr2 = [1,2,8,6]
Run Code Online (Sandbox Code Playgroud)

Ric*_*asi 20

odd  = arr.filter (v) -> v % 2
even = arr.filter (v) -> !(v % 2)
Run Code Online (Sandbox Code Playgroud)

或者更惯用的CoffeeScript:

odd  = (v for v in arr by 2)
even = (v for v in arr[1..] by 2)
Run Code Online (Sandbox Code Playgroud)

  • 应该是 `arr.filter((v, i) => i % 2)` 因为OP的问题是基于位置而不是值 (3认同)

Dav*_*mas 16

你可以尝试:

var Arr1 = [1,1,2,2,3,8,4,6],
    Arr2 = [],
    Arr3 = [];

for (var i=0;i<Arr1.length;i++){
    if ((i+2)%2==0) {
        Arr3.push(Arr1[i]);
    }
    else {
        Arr2.push(Arr1[i]);
    }
}

console.log(Arr2);
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示.