node.js:如何从文本输入中创建变量?

时间:2014-05-08 12:53:49

标签: node.js variables input transformation

我希望用户输入文件名,然后将内容复制到数组中并使用输入文件名保存此数组。这是我正在谈论的代码:

数组“items”表示用户输入。现在这些项目被输入我的函数“einlesen”,它返回带有数据的数组。此数据现在写入相同的数组结果,但我希望将其写入数组“GVZ”,“TAL”和“XPG”。有人可以帮助我吗?

感谢每一个想法:)

尼尔斯

var items = [['GZV', ';', 1, 2], ['TAL', '<|>', 1, 'n'], ['XPG', '<|>', 0, 2]];
var results = [];

items.forEach(function(item) {
  einlesen.einlesen(item[0], item[1], item[2], item[3], function(err, result){
    results.push(result[1][0]);
    console.log(item[0]);
    if(results.length == items.length) {
    final();
    }
  })
});

1 个答案:

答案 0 :(得分:0)

最好使用对象而不是数组数组:

var items = {
    GZV: [...],
    TAL: [...],
    XPG: [...]
}

for(item in items) {
    einlesen.einlesen(...)
}

这样,您可以根据用户输入创建对象属性。用户输入中无法创建变量(假设您的意思是变量名?)

var newProp = "resultOfInput";
items[newProp] = [...];
console.log(items.resultOfInput) // [...]

如果你这样做,你需要确保对输入进行强有力的验证。例如;如果输入包含任何空格,这将阻止通过点表示法访问属性。更糟糕的是,重复的用户输入可以轻松地覆盖数组中的任何现有属性。