테스트 사이트 - 개발 중인 베타 버전입니다

jquery 배열 나누기질문입니다. 채택완료

mmkk2 5년 전 조회 3,443

 

arr배열안에 있는값을 20개씩 나누고싶습니다.

 

그러나 arr.splice(0, 20) 로 해버리면 기존배열에 값이 삭제되더라구요..

삭제안되고 계속활용하려고하는데, 방법이있을까요?

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
5년 전

</p>

<p>Array.prototype.chunk = function (chunk_size) {

  var temp = this.slice(0),

      results = [];

    

  while (temp.length) {

    results.push(temp.splice(0, chunk_size));

  }</p>

<p>  return results;

};</p>

<p>var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26];</p>

<p>console.log( arr.chunk(20), arr );</p>

<p>

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

B
5년 전

참고로 간단한 코드 추가합니다.

지정한 크기만큼 나눠서 할당 후, 배열의 크기에 따라 result[0], result[1], ... 사용하면 됩니다.

</p>

<p>for (var i=0, c=20, loop=Math.ceil(arr.length/c), result=[]; i<loop; i++) result[i] = arr.slice(i*c, (i+1)*c);</p>

<p>// 또는</p>

<p>for (var i=0, c=20, loop=Math.ceil(arr.length/c), result=[]; i<loop; i++) result.push(arr.slice(i*c, (i+1)*c));</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

arr2 = arr.splice(0, 19);

arr3 = arr.splice(20, 39);

이런식으로 변수명을 바꾸면서 대입해야하셨나요?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인