簡體   English   中英

從JavaScript中的字符串生成隨機數

[英]Generate random numbers from string in JavaScript

我想制作一個客戶端A / B測試庫。

每個用戶在Cookie中都有一個隨機數。 每個測試都有一個測試名稱和一組選項。 我需要一個函數,該函數根據用戶的隨機數,測試名稱和選項來選擇隨機選項。 當然,對於給定的一組輸入,該函數必須始終返回相同的選項。

如何用JavaScript編寫此函數?

我當前的解決方案使用CryptoJS庫的MD5哈希函數生成一個隨機數:

// seed is the user's random number

choose_option = function(seed, test_name, options) {
  word = CryptoJS.MD5("" + seed + test_name).words[0]; // take first 32-bit word
  i = Math.abs(word % options.length);
  return options[i];
}

也許稍后再過一陣子,因為所討論的lib具有您可能不使用的許多功能,但是我一直在項目中包含此功能,因此讓我將解決方案暴露給您遇到的同樣問題。 這個庫可以用一個種子來初始化機會js#seed ),對於創建可重復的結果非常有用:

const Chance = require('chance');
c1 = Chance('email@gmail.com', 'maybe a uuid here');
c1.integer();
c1.natural({min:1000,max:9999});

c2 = Chance('foo-baz-bar');
c2.string();
c2.word();
...

希望這可以幫助。

var availNum= [1, 4, 5, 6, 7, 8, 12];
//@var count number of random num you want 
function createRandomData(count) {
    var data = [],
    for (var i = 0; i < count; i++) {
        var random = availNum[Math.floor(Math.random() * availNum.length)],

        data.push({
          random:random 
        });
    }
    return data;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM