我在JavaScript中具有以下随机电子邮件生成器:
getRandomEmail = function () {
var strValues = "abcdefghijk123456789";
var strEmail = "";
for (var i = 0; i < strValues.length; i++) {
strEmail = strEmail + strValues.charAt(Math.round(strValues.length * Math.random()));
}
return strEmail + "@mail.com";
};
我想在执行期间生成尽可能多的随机电子邮件。我可以简单地通过调用函数并将其分配给变量的次数来实现此目的:
var randEmail1 = getRandomEmail();
var randEmail2 = getRandomEmail();
var randEmail3 = getRandomEmail();
var randEmail4 = getRandomEmail();
以此类推,所以我需要的电子邮件越多,代码看起来就越丑陋,我想知道是否存在写此代码的简便方法?
编辑:
我有2个不同的.js文件:randomMethods.js和Register.js
在randomMethods.js中,我具有上述功能,在Register.js中,我具有以下功能:
require('../helpers/randomMethods.js');
...
var getMultipleEmails = count => Array.from(Array(count))
.map(() => getRandomEmail());
var emails = getMultipleEmails(1);
...
emailInputField.sendKeys(emails[0]);
我正在使用Jasmine框架和量角器。
答案 0 :(得分:3)
如果要在多个命名变量中使用它们,则无法显着缩短此时间。
通常,当您想要这样的事情列表或想要数量未知的事情时,最好有一个array
之类的东西。
以下代码显示了生成随机电子邮件数组的功能,以及如何访问该数据:
var getRandomEmail = function () {
var strValues = "abcdefghijk123456789";
var strEmail = "";
for (var i = 0; i < strValues.length; i++) {
strEmail = strEmail + strValues.charAt(Math.round(strValues.length * Math.random()));
}
return strEmail + "@mail.com";
};
var getMultipleEmails = count => Array.from(Array(count))
.map(() => getRandomEmail());
var emails = getMultipleEmails(5);
console.dir(emails);
console.log(emails[0]);
console.log(emails[1]);
console.log(emails[4]);
答案 1 :(得分:-1)
getRandomEmail = function () {
var strValues = "abcdefghijk123456789";
var strEmail = "";
for (var i = 0; i < strValues.length; i++) {
strEmail = strEmail + strValues.charAt(Math.round(strValues.length * Math.random()));
}
return strEmail + "@mail.com";
};
function generateNRandomeEmails(N){
return [...Array(N).keys()].map((item)=> getRandomEmail() )
}
console.log(generateNRandomeEmails(5))