0
0

ユニークな値を作成する方法

Last updated at Posted at 2024-09-02

前提

typeScrypt,Vue.jsを扱っていた時の話。
ほぼメモに近いです
こんな感じで生成できるんかって言う忘備録

経緯

for文のなかで一意になる値を何かしら指定しなければいけない状況だったが、保持しているオブジェクトでは一意な値は作成できず外部で作成したものを無理矢理注入するしかないと言う意見に至った。
👆できるならこの考え方はやりたくなかったがクリティカルなバグだったため、暫定的に対応しようとしていた。

方法

Math.random()

以下のような感じにすると100までの乱数が作成できる。
(好きな範囲を設定してください)

.js
Math.floor(Math.random() * 100) + 1;

Crypto: randomUUID()

これは便利だなって思いましたね。
ライブラリ必要とせずにできるし、nodeの環境であれば使えるのは助かりますね。
ただ、これに関してはクライアント側で使えないと言うことがわかったので、今回の場合だと採用できなかった感じ
また「https」のような安全な環境でしか使えない。
https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID

.js
randomUUID()

Web Crypto API

これは一つ前に紹介したやつCrypto: randomUUID()が使えなかったときはこっちを使ってみて、みたいなやつをみて知った書き方は以下

.js
const createUUID = (length: number) => {
  const array = new Uint8Array(length);
  return window.crypto.getRandomValues(array).join(“”);
};

結果

要件的に不要になったのでそもそも使わなかった
もっと色々な方法があると思うな
どれがベストかは全くわからないが、node環境であるならCryptoを使うのがいいのかなと個人的には思った

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0