2016-11-05 8 views

答えて

0

remainder operator%を使用して確認することができます。ゼロの場合は、最後に挿入された配列に移動し、そうでない場合は新しい配列を返します。

var array = [1, 2, 3, 4, 5, 6], 
 
    result = array.reduce(function (r, a, i) { 
 
     i % 2 ? r[r.length - 1].push(a) : r.push([a]); 
 
     return r; 
 
    }, []); 
 

 
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

+0

おかげニーナは、昨日はまた、あなたが私を救っ、マップ-減らす上でコマンドを取得する方法を教えてください。私はこれらの基本的な質問を何度も繰り返し聞きたくありません。私に良い書類を教えてください。 –

+0

私は文書を持っていません、答えはまっすぐです、突然モジュロ演算子がやっているものを見て、別の挿入された値を見てください。 –

+0

こんにちはニーナ、私を助けてくださいhttp://stackoverflow.com/questions/40447041/stream-the-contents-of-each-file-using-web-sockets-and-reactjs –

0

あなたは、一時的なオブジェクトを使用することができますが、私は減らすことはないと思う、この目的のためにメンターです。私はforループを使用します。

[1, 2, 3, 4, 5, 6].reduce(
    function(a,b) { 
    if(a.val) { 
     a.arr.push([a.val, b]); 
     a.val = false; 
    } else { 
     a.val = b; 
    } return a; 
    }, { 
    arr: [], 
    val: false 
    } 
).arr 
0

あなたは再帰関数で試すことができますArray.of()Array.prototype.slice()

var arr = [1,2,3,4,5,6]; 
var res = Array.of(arr.slice(0,2), arr.slice(2,4), arr.slice(4)); 
0

を使用することができます。また、奇数長の配列の場合も考慮に入れます。

var a = [1, 2, 3, 4, 5, 6, 7]; 
 

 
function div(arr) { 
 
    return arr.length <= 1 ? [arr] : [[arr[0], arr[1]]].concat(div(arr.slice(2))); 
 
} 
 

 
console.log(div(a));

関連する問題