2016-08-11 2 views
2

내가 만든 특정 객체에 대해 고유 키를 만들어야합니다 (React key prop에 필요). 여기서 key는 임의의 임의의 문자열이나 숫자 일 수 있지만 생성 될 때마다 고유해야합니다. 프로그램 수명.자바 스크립트에서 순전히 고유 번호를 얻는 방법

new Date().getTime()을 키로 사용해 보았지만 루프에서 여러 개의 객체에 동일한 키가 할당 된 문제가 발생했습니다.

프로그램이 실행되는 동안 각 호출이 순전히 고유 한 값을 반환하는 함수가 있습니까? 아니면 자체 카운터를 구현해야합니까?

당신은 UUID를 생성 할 수 있습니다
+0

카운터를 구현하는 것만으로도 GUID를 생성하는 것보다 훨씬 간단하고 성능이 뛰어납니다. id가 필요할 때'nextKey() '를 호출 할 것입니다.) – nnnnnn

+0

I() {return i ++;}}) 당신의 접근 방식을 확장하고 있습니다! 너는 이것을 시도 할 수있다. 'function getUUID() { var n = 새 날짜(). getTime(); var m = new Date(); var o = m.getMilliseconds(); var uuid = n * o; return uuid; }' –

+0

@MavenMaverick - OP 코드가 작동하지 않는 것과 같은 이유로 작동하지 않습니다. 동일한 밀리 초 내에 여러 번 함수를 호출하면 동일한 결과를 얻습니다. – nnnnnn

답변

1

:

function guid() { 
    function s4() { 
    return Math.floor((1 + Math.random()) * 0x10000) 
     .toString(16) 
     .substring(1); 
    } 
    return s4() + s4() + '-' + s4() + '-' + s4() + '-' + 
    s4() + '-' + s4() + s4() + s4(); 
} 

원래 답 : https://stackoverflow.com/a/105074/5109911

대안 : 그것은 단지 다음 "한 프로그램이 실행되는"에 대해 고유해야 할 필요가있는 경우 https://jsfiddle.net/briguy37/2MVFd/

관련 문제