머리말
배열의 요소를 무작위로 추출하는 방법은 어렵지 않게 생각할 수 있다. 하지만, 배열의 값을 중복해서 추출하지 않아야 할 경우가 발생하면 작성하던 코딩이 잠시 멈추게 된다. 본 포스팅에서는 배열의 요소를 추출할 때, 중복된 요소가 추출되지 않도록 추출하는 방법에 대해서 소개한다.
배열의 요소를 중복되지 않게 무작위로 추출 방법
기존 배열의 요소들을 보존하는지 여부에 따라 다양한 코드가 존재할 수 있지만, 배열의 push 또는 splice 함수를 활용하는 점은 동일할 것이다. 기존 배열들의 요소들을 보존하지 않는다고 가정했을 때, 배열의 요소를 중복 없이 랜덤 하게 추출하는 방법은 아래 코드와 같다.
// splice 함수를 활용해서 배열의 값을 제거함으로써 중복을 방지
function arrayExtract(array) {
var index = Math.floor(Math.random() * array.length);
var random = array[index];
array.splice(index, 1);
return random;
}
// 반복문 수행으로 결과 값 출력
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for(var i=0; i<5; i++){
console.log(arrayExtract(array));
}
꼬리말
위의 결과는 본인의 알고리즘으로 작성된 코드이다. 상황에 따라 기존의 배열 값을 보존해야 되는 경우, 별도의 배열을 생성한 뒤 push 함수를 활용해서 구현할 수 있다. 비교적 주로 사용하지 않는 splice 함수를 활용해서 중복 없이 배열의 요소를 추출하는 방법에 대해서 소개한 본 포스팅은 이로써 마무리를 짓도록 한다.
소중한 댓글 (0)