2012-08-09 47 views
1

我想要一个很简单的功能,我希望用短暂而美好代码做以下如何将阵列分成花药成对排列

输入:

[1,2,3,4,5,6,7,8,9,10] 

输出:

[[1,2],[3,4],[5,6],[7,8],[9,10]] 

如何在javascript中执行此操作

+1

你想处理数组中的奇数个元素吗? – Mageek 2012-08-09 03:14:34

+0

'JSON.parse('['+ [1,2,3,4,5,6,7,8,9,10] .toString()。replace(/(\ d +,\ d +)/ g,' [$ 1]')+']')'heheh – hyperslug 2012-08-09 03:40:24

回答

1
function splitPairs(arr) { 
    var newArr = new Array(Math.round(arr.length/2)); 
    for (var i=0, l=arr.length; i<l; i+=2) { 
    newArr[i>>1] = [arr[i], arr[i+1]]; 
    } 
    return newArr; 
} 

Fiddle

2

这里有一个不同的风味改变阵列中的位置(假定偶数个阵列条目):

var orig = [1,2,3,4,5,6,7,8,9,10]; 
for (var i = 0; i < orig.length; i+=2) { 
    orig[i/2] = [orig[i], orig[i+1]]; 
} 
orig.length /= 2;