考えられる解決策1. Math.randomは[0,1)の範囲の乱数を生成します。//今回は生成された値を実行しました: 0.5834165740043102 Math.random(); 2. 現在のタイムスタンプを取得する Date.now//タイムスタンプは1482645606622です 日付.now(); 3. 小数を他の基本文字列に変換する Number.toString// 1482645606622 を 2 進数に変換: 10101100100110100100001001000011011110 (1482645606622).toString(2); //16進数に変換: 159349090de MongoDB の ObjectID は 24 桁の 16 進数です (1482645606622)。toString(16); //サポートされる最大基数は 0-9a-z の文字を使用した 16 進数です: ix48wvry (1482645606622).toString(36); 改良版1: 乱数 + toString()1. 乱数バージョン/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(){ Math.random().toString() を返す } //0.1283460319177394 に似た ID を生成します 重複IDを生成() 2. 乱数バージョン 16進数バージョン/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(){ Math.random().toString(16) を返す } //関数は0.c1615913fa915のようなIDを生成します 重複IDを生成() 3. 乱数バージョン 16進数バージョン/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(){ Math.random().toString(36) を返す } //関数は0.hefy7uw6ddzwidkwcmxkzkt9のようなIDを生成します 重複IDを生成() 4. 乱数バージョン 16進数バージョン/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(){ Math.random().toString(36).substr(2) を返す } //この関数は8dlv9vabygks2cbg1spds4iのようなIDを生成します 重複IDを生成() 要約する利点: toStringの基数変換を使用すると、より短い文字列でより広い範囲を表すことができます。 デメリット: 乱数を ID として使用すると、使用回数が増えるにつれて必然的に同じ ID が 2 つ生成されます。 改良版21. タイムスタンプ+16進数バージョンを導入する/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(){ idStr = Date.now().toString(36) とします。 idStr += Math.random().toString(36).substr(2) idStrを返す } //関数はix49sfsnt7514k5wpflyb5l2vtok9y66rのようなIDを生成します 重複IDを生成() 2. タイムスタンプ + 16進数バージョン + 乱数の長さ制御を導入する/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(ランダム長さ){ idStr = Date.now().toString(36) とします。 idStr += Math.random().toString(36).substr(2,randomLength) idStrを返す } // GenNonDuplicateID(3)はix49wl2978wに似たIDを生成する 重複IDなし(3) ただし、この方法で生成された ID の最初の数桁は常に同じになります。 3. タイムスタンプを導入 + 乱数の先頭に16進数を追加 + 乱数の長さを制御する/** * 一意のIDを生成する */ 関数 GenNonDuplicateID(ランダム長さ){ Number(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36) を返します。 } //GenNonDuplicateID() は rfmipbs8ag0kgkcogc に似た ID を生成します。 重複IDを生成() 要約するタイムスタンプを使用するだけで、複数の人が同時に同じデータにアクセスできるようになります。乱数を追加することで一意性を実現できます。さらに、長さをカスタマイズできるため、UUID はより柔軟になります。 要約するユニバーサルソリューション: /** * 一意のIDを生成する * @param { 数値 } ランダム長さ */ 関数 getUuiD(ランダム長さ){ Number(Math.random().toString().substr(2,randomLength) + Date.now()).toString(36) を返します。 } 上記は、JavaScript でユニーク ID を生成するいくつかの方法の詳細です。JavaScript でユニーク ID を生成する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明
>>: MySQLでMyISAMストレージエンジンをInnodbに変更した操作記録のまとめ
目次1. プロトタイプチェーン継承2. コンストラクタによる継承3. 組み合わせ継承4. プロトタイ...
HTML と CSS で実装された登録ページ テンプレート。早速、コードを見てみましょう。更新: ...
docker イメージを使用する場合、以下に示すように、REPOSITORY と TAG の両方が ...
1. 設定ファイルディレクトリを作成するcd /ホームディレクトリmkdir frp最終的なディレク...
1. ユーザーを作成して承認するMySQL 8.0 では、ユーザーの作成と認証が以前とは異なります...
目次1. スタックの定義2. JSスタックの調査1. スタックとヒープ2. 基本型と参照型3. 値渡...
MySQL UNION 演算子このチュートリアルでは、MySQL UNION 演算子の構文と例を紹介...
問題を見つける今日、仕事中に、ローカル データベースから仮想マシン CentOS 6.6 上のデータ...
目次序文コンテナ間の通信を容易にするためのブリッジネットワークを作成するCentOS7イメージを使用...
この記事では、例を使用して、MySQL ストアド プロシージャでのループ ステートメント (WHIL...
ルートジャンプ this.$router.push('/course'); this...
新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...
さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...
MySQL はインストール時に自動的に mysql という名前のデータベースを作成します。mysql...
1. 制限の基本的な実装一般的に、クライアントは、pageNo (ページ番号) と pageSize...