2012-08-09 22 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;