前提
typeScrypt,Vue.jsを扱っていた時の話。
ほぼメモに近いです
こんな感じで生成できるんかって言う忘備録
経緯
for文のなかで一意になる値を何かしら指定しなければいけない状況だったが、保持しているオブジェクトでは一意な値は作成できず外部で作成したものを無理矢理注入するしかないと言う意見に至った。
👆できるならこの考え方はやりたくなかったがクリティカルなバグだったため、暫定的に対応しようとしていた。
方法
Math.random()
以下のような感じにすると100までの乱数が作成できる。
(好きな範囲を設定してください)
Math.floor(Math.random() * 100) + 1;
Crypto: randomUUID()
これは便利だなって思いましたね。
ライブラリ必要とせずにできるし、nodeの環境であれば使えるのは助かりますね。
ただ、これに関してはクライアント側で使えないと言うことがわかったので、今回の場合だと採用できなかった感じ
また「https」のような安全な環境でしか使えない。
https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID
randomUUID()
Web Crypto API
これは一つ前に紹介したやつCrypto: randomUUID()が使えなかったときはこっちを使ってみて、みたいなやつをみて知った書き方は以下
const createUUID = (length: number) => {
const array = new Uint8Array(length);
return window.crypto.getRandomValues(array).join(“”);
};
結果
要件的に不要になったのでそもそも使わなかった
もっと色々な方法があると思うな
どれがベストかは全くわからないが、node環境であるならCryptoを使うのがいいのかなと個人的には思った