我想创建随机用户名。 我使用文件中的列表名称和名字,并随机从每个文件中获取一个。
var nameList= fs.readFileSync("random-name/names.txt").toString().split("\n");
var name = nameList[Math.ceil(Math.random()*nameList.length)];
var firstnameList= fs.readFileSync("random-name/first-names.txt").toString().split("\n");
var firstname= firstnameList[Math.ceil(Math.random()*firstnameList.length)];
当我想连接它们时会出现问题:
console.log( name);
console.log( firstname);
console.log( firstname+"-"+name);
输出:
Brant
Jesselyn
-Brantyn
如果我静态设置变量name
和firstname
,那么显然没有问题。
答案 0 :(得分:2)
问题出现是因为我将文件内容与" \ n"分开了,而且还有" \ r"在每个名字和名字的末尾。
答案 1 :(得分:1)
正如您已经注意到的那样,从输入中删除\r
,或者在\r?\n
上拆分。
其他说明:
floor
,而不是ceil
。怎么样:
function getLines(filename) {
return fs.readFileSync(filename).toString().split(/\r?\n/);
}
Array.prototype.getRandomItem = function () {
return this[Math.floor(Math.random() * this.length)];
};
和
var nameList = getLines("random-name/names.txt");
var name = nameList.getRandomItem();
var firstnameList = getLines("random-name/first-names.txt");
var firstname = firstnameList.getRandomItem();