[js] [기술] 지정 한 범위 에서 지정 한 개수 의 중복 되 지 않 는 난수 생 성

2517 단어 js
오늘 우연히 봤 어 요.
예 를 들 어 1 - 100 범위 내의 10 개의 중복 되 지 않 는 랜 덤 수 를 생 성 하려 면 코드 는 이렇게 쓸 수 있다.
var arr = [];

for (var i = 1; i <=100; i++) {
    arr.push(i);
}

arr.sort(
    function () {
        return 0.5 - Math.random();
    }
);

arr.lenth = 10;

console.log(arr);

다음 코드 보충 과 2017 년 11 월 20 일 오늘 갑자기 이전 블 로 그 를 뒤 져 보 니 자신의 코드 가 개선 할 수 있다 는 것 을 알 게 되 었 습 니 다.
var array = new Array(100)
    .fill(0)
    .map((v,i)=>i+1)
    .sort(()=>0.5 - Math.random())
    .filter((v,i)=>i<10);
console.log(array);// [21, 93, 4, 61, 70, 63, 80, 85, 69, 31]

다음은 w3 school 이 sort () 방법 에 대한 설명 자 바스 크 립 트 sort () 방법 입 니 다.
설명 하 다.
이 방법 을 호출 할 때 파 라 메 터 를 사용 하지 않 으 면 배열 의 요 소 를 알파벳 순 으로 정렬 하고 더 정확하게 말 하면 문자 인 코딩 순서 로 정렬 합 니 다.이 를 실현 하려 면 먼저 배열 의 요 소 를 문자열 (필요 하 다 면) 로 바 꾸 어 비교 해 야 한다.
다른 기준 에 따라 정렬 하려 면 비교 함 수 를 제공 해 야 합 니 다. 이 함 수 는 두 개의 값 을 비교 한 다음 에 이 두 값 의 상대 적 인 순 서 를 설명 하 는 숫자 를 되 돌려 줍 니 다.비교 함 수 는 두 개의 매개 변수 a 와 b 를 가 져 야 합 니 다. 그 반환 값 은 다음 과 같 습 니 다.
4. 567917. a 가 b 보다 작 으 면 정렬 된 배열 에서 a 가 b 전에 나타 나 면 0 보다 작은 값 을 되 돌려 줍 니 다
4. 567917. a 가 b 와 같 으 면 0 으로 돌아간다
4. 567917. a 가 b 보다 크 면 0 이상 의 값 을 되 돌려 줍 니 다
나 는 단지 말 하고 싶 을 뿐, 도대체 sort () 가 어떤 비교 절차 인지 잘 모 르 겠 으 니, 누군가가 상세 하 게 설명해 주 기 를 바란다.

좋은 웹페이지 즐겨찾기