Javascript字符串以错误的顺序连接

时间:2016-06-24 15:05:35

标签: javascript node.js

我试图从这三个数组生成一个角色。我的代码如下,但我无法弄清楚为什么字符串不会像我写的那样连接。其中一些缺失,结尾.甚至在某些时候开始。偶尔它会起作用,但很多时候输出都会失败。

//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

谢谢。

1 个答案:

答案 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;
}