-1

ページが読み込まれるたびに、任意の長さのランダムな一意の文字列を作成する必要があります。これにより、既存のオブジェクト プロパティの上書きを防ぐために、その周りにラベルを付けることができますか? コードは次のようになります。

var
   uid = generate_uid();

タイ。

4

1 に答える 1

0
//  I think I got it
//
function generate_uid( prefix ) {
    var
        tmp1   = "",
        tmp2   = "",
        locase = "abcdefghijklmnopqrstuvwxyz",
        tf     = function () { return Math.random() > .5; },
        r,
        l;

    for (var i = 0, len = locase.length; i < len; i++) {
        tmp1 += ( ( tf() ) ? locase[i].toUpperCase() : locase[i] );
    }
    l = ( tmp1 += String( Date.now ? Date.now() : ( new Date() ).getTime() ) ).length;
    for (
        ; l
        ; (
            r      = Math.floor( Math.random() * ( l-- ) ),
            tmp2  += tmp1.charAt( r ),
            tmp1   = tmp1.substring( 0, r ) + tmp1.substr( r + 1 )
        )
    );
    return prefix ? String( prefix ) + tmp2 : tmp2;
}
console.log( generate_uid("fnid_") );
//
//  fnid_2JGZCMWSyrQaNhD10k83p91LTF073X6oiv9Be5u
//
于 2013-09-02T14:06:05.687 に答える