刚看到的uuid的生成方法:

function uuid(){
    const url = URL.createObjectURL(new Blob());
    const str = url.toString();
    URL.revokeObjectURL(url);
    return str.substring(str.lastIndexOf('/')+1)
}

在想这种写法能保证得出的uuid唯一吗?

试下批量生成n个,利用Set看看个数会不会比n小

function test(n){
    const start = Date.now();
    const set = new Set();
    for(let i =0;i<n;i++){
        const h = u();
        set.add(h)
    }
    console.log('time cost',(Date.now() - start)/1000)
    return set.size
}

image.png

从100试到1000000,个数没少。
但是耗时倒是也跟着个数倍数上升。连电池管理都识别到chrome使用了大量能耗。


Dont
7k 声望144 粉丝

学如逆水行舟不进则退