자바스크립트 배열 요소를 중복 없이 랜덤 추출 방법

Wookoa 2024. 2. 4.

배열의 요소를 무작위로 추출 방법
배열의 요소를 무작위로 추출 방법

 

머리말

  배열의 요소를 무작위로 추출하는 방법은 어렵지 않게 생각할 수 있다. 하지만, 배열의 값을 중복해서 추출하지 않아야 할 경우가 발생하면 작성하던 코딩이 잠시 멈추게 된다. 본 포스팅에서는 배열의 요소를 추출할 때, 중복된 요소가 추출되지 않도록 추출하는 방법에 대해서 소개한다.

배열의 요소를 중복되지 않게 무작위로 추출 방법

  기존 배열의 요소들을 보존하는지 여부에 따라 다양한 코드가 존재할 수 있지만, 배열의 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)