2016-11-05 1 views

답변

0

확인을 위해 remainder operator%을 사용할 수 있습니다. 0이면 마지막으로 삽입 된 배열로 이동하고 그렇지 않으면 새로운 배열로 이동합니다.

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

당신은 임시 객체를 사용할 수 있지만 나는이 목적을 위해, 표준입니다 감소 생각하지 않습니다. IMHO 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));