我试图从这三个数组生成一个角色。我的代码如下,但我无法弄清楚为什么字符串不会像我写的那样连接。其中一些缺失,结尾.
甚至在某些时候开始。偶尔它会起作用,但很多时候输出都会失败。
//Arrays
var character = ["man", "woman"];
var feature = ["one leg", "a drinking problem"];
var purpose = ["stay home", "leave home"];
function createSentence(){
var char = getRandomItem(character);
var feat = getRandomItem(feature);
var purp = getRandomItem(purpose);
var sentence = "A " + char + " with " + feat + ", that wants to " + purp + ".";
return sentence;
}
// Gets a random item from an input array
function getRandomItem(array){
var index = Math.floor(Math.random()*array.length);
return array[index];
}
这是我在控制台中获得的内容。 .
一开始就错过了"字符" -part。
。有饮酒问题,想要离家出走
编辑:很抱歉不包括此内容,因为我猜这里也非常相关。我认为阵列很好,但我可能会遗漏一些东西。当我解析它们后打印出它们时,它们看起来就像我上面发布的那样。
// How i set up my arrays
var character = parseTextFile("character.txt");
var feature = parseTextFile("feature.txt");
var purpose = parseTextFile("purpose .txt");
// Parsing a file
function parseTextFile(filename){
var array = fs.readFileSync(filename).toString().split("\n");
return array;
}
/* --- character.txt ---*/
man
woman
谢谢。
答案 0 :(得分:0)
// How i set up my arrays
var character = parseTextFile("character.txt");
var feature = parseTextFile("feature.txt");
var purpose = parseTextFile("purpose .txt");
// Parsing a file
function parseTextFile(filename){
//fs.read requires absolute path
var array = fs.readFileSync(__dirname + '/' + filename, 'utf8') // <-- specify format
.split('\n')
.filter(function(text) { return !!text; }); // <-- return only not-empty string
return array;
}