2016-11-17 70 views
-2

我是JavaScript新手。我有一個數組:如何在Javascript中返回數組而不返回反向數據

var test = [ 
    {data1}, 
    {data2}, 
    {data3}, 
    {data4}, 
    {data5} 
]; 

所以我所做的就是

var test1 = []; 
while(test.lenght){ 
    test1.push(test.splice(0-2)); 
} 

但結果是

test1[0] = [{data4},{data5}]; 
test1[1] = [{data2},{data3}]; 
test1[2] = [{data1}]; 

我想它拼接成這樣

test1[0] = [{data1},{data2}]; 
test1[1] = [{data3},{data4}]; 
test1[2] = [{data5}]; 

我怎樣才能做到這一點?

+0

'0-2'(-2)指從端部兩個位置回來。看起來像一個錯字。 – ASDFGerte

回答

0

更新Array#splice方法的參數爲02用於刪除前2個元素。

var test = [ 
 
    'data1', 
 
    'data2', 
 
    'data3', 
 
    'data4', 
 
    'data5' 
 
]; 
 

 
var test1 = []; 
 
while (test.length) { 
 
    test1.push(test.splice(0, 2)); 
 
} 
 

 
console.log(test1)


UPDATE:如果你不想更新原有的數組,然後使用Array#slice方法。

var test = [ 
 
    'data1', 
 
    'data2', 
 
    'data3', 
 
    'data4', 
 
    'data5' 
 
]; 
 

 
var test1 = []; 
 
for (var i = 0, count = Math.ceil(test.length/2); i < count; i++) { 
 
    test1.push(test.slice(i * 2, i * 2 + 2)); 
 
} 
 

 
console.log(test1) 
 

 
// or alternate method with updated for loop conditions 
 

 
var test2 = []; 
 
for (var i = 0; i < test.length; i += 2) { 
 
    test2.push(test.slice(i, i + 2)); 
 
} 
 

 
console.log(test2)

+0

這就是我所做的,但它返回其他數組,而不是我所期望的。 – sse

+0

@sse:檢查輸出 –