2017-04-07 3 views
1
나는 무작위로

자바 스크립트에서 여러 배열을 섞으려고했지만 같은 방법으로 시도하고 있습니까?

var array1 = [1,2,3,4,5]; 
var array2 = [6,7,8,9,10]; 

그래서 각 배열은 무작위로 같은

나는 둘 사이에 줄 바꿈을 원하는 반환에 또한
4,2,3,5,1 
7,9,6,8,10 

로 단행 반환하는 동일한 기능이 두 배열을 셔플 할

, 도와주세요?

+2

첫째, 그것을 찾기 위해 스택 오버 플로우에 '셔플 배열'을 검색합니다. 두 번째로 출력은'document.body.innerHTML = array1.join (',') + '
'+ arrat2.join (',')'와 같이 간단합니다. 됐어. 이 두 가지 모두 작은 사이트를 통해이 사이트에서 쉽게 찾을 수 있습니다. – somethinghere

+0

@somethinghere OP에'document.body.innerHTML ='을 말하지 마십시오. 그들의 포스트에있는 어떤 것도 그들이 전신 HTML을 그 데이터로 대체하고 싶다고 제안하지 않았습니다. – itamar

+0

@itamar이 게시물의 아무 것도 실제로는 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _를 출력합니다. 저는'document.body'를 사용하여 적어도 작업 할 수있는 예제를 가지고 있고 이것이 얼마나 간단한지를 보여줍니다 (나는 이것을 할 수있는 유일한 방법이 아닌 _'s something something'_이라고 말했습니다.). 여하튼, 이것은 나의 요점이 아니었다. 이 두 가지 모두이 사이트에서 쉽게 찾을 수 있습니다. 그리고 아니, 나는 트롤링하지 않습니다. – somethinghere

답변

1

간편한 액세스를 위해 Array.prototype에 셔플 방법 추가 - 원본을 변경하지 않고 수정 된 배열을 반환합니다.

Array.prototype.shuffle = function() { 
 
    var rIndex, temp, 
 
    input = this.slice(0), 
 
    cnt = this.length; 
 

 
    while (cnt) { 
 
    rIndex = Math.floor(Math.random() * cnt); 
 
    temp = input[cnt - 1]; 
 
    input[cnt - 1] = input[rIndex]; 
 
    input[rIndex] = temp; 
 
    cnt--; 
 
    } 
 

 
    return input; 
 
} 
 

 
var array1 = [1, 2, 3, 4, 5]; 
 
var array2 = [6, 7, 8, 9, 10]; 
 

 
document.getElementById('shuffle-btn').onclick = function(){ 
 
    document.getElementById('output').innerHTML = [array1.shuffle(), array2.shuffle()].join('\n'); 
 
}
<button id="shuffle-btn">Shuffle</button> 
 
<pre id="output"></pre>

+0

감사합니다. 버튼을 통해 onclick을 사용하여이 함수를 실행하고 있는데, 이것을 할 수 있습니까? – AB1412

+0

예. 너는 할 수있어. 만약 당신이 일부 DOM 요소에 결과를 삽입하고 싶다면'join '에'\ n' 대신에'
'을 사용하십시오. –

+0

어떻게하면 버튼의 HTML onclick에서이 함수를 호출 할 수 있습니까? – AB1412