2016-11-17 6 views
-2

JavaScriptを初めて使用しています。私が配列している:だから私がやったことは逆のデータを返さずにJavascriptで配列をスプライスする方法

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

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

です。しかし、結果は私が

このような
test1[0] = [{data1},{data2}]; 
test1[1] = [{data3},{data4}]; 
test1[2] = [{data5}]; 

にそれをつなぎ合わせたい

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

ですどうすればこれを達成できますか?

+0

'0-2'は(-2)バックエンドからの2つの位置を意味します。タイプミスのようです。 – ASDFGerte

答えて

0

メソッドの引数は、最初の2つの要素を削除するための02となります。

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:出力を確認する –

関連する問題