[英]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.