JavaScript附加在文本文件的每一行的末尾

时间:2018-04-11 14:38:52

标签: javascript html

我正在阅读包含3行的此文本文件的内容:

"首选是:

第二个选择是:

第三种选择是:"

我分开" \ n"我想在用户输入的每一行的末尾添加一个数字。用户输入的是3个不同的数字(来自select tags),名为" rank1"," rank2"," rank3"我希望每个数字都在新创建的文本文件的每一行的末尾。

JavaScript:

var data = fs.readFileSync("data1.txt", "utf-8"); 
var lines = data.split("\n");

lines.forEach(function(line){
var newLine = line + /*What should be appended (rank1,rank2,rank3)*/;
var output = fs.appendFileSync('file', newLine, 'utf8');
})

选择标签:

<select name="rank1" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>

</select>

<select name="rank2" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>

</select>

<select name="rank3" size="1">
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
</select>

预期产出:

&#34;首选是:1  第二选择是:3  第三种选择是:2&#34;

我该如何实现?非常感谢你提前!

3 个答案:

答案 0 :(得分:2)

你想做什么的单行:

file.split('\n').map( (line) => line + choices.shift() ).join('\n')

此外,所有这些都可以异步完成:

const fs = require('fs');
const choices = [ "rank1", "rank2", "rank3" ];

fs.readFile(
    './data1.txt',
    'utf-8',
    (err, file) => fs.writeFile(
        './data1.txt',
        file.split('\n').map( (line) => line + choices.shift() ).join('\n'),
        (err) => {}
    )
);

答案 1 :(得分:1)

我认为您可以使用for循环遍历行和select元素,然后将输出导出到文件。

var data = fs.readFileSync("data1.txt", "utf-8"); 
var lines = data.split("\n");
var output;  
for(var i =0; i < lines.length;i++){
  var newLine = lines[i] + document.getElementsByName('rank'+(i+1))[0].value;
     output += newline; 
}

 fs.appendFileSync('file', output, 'utf8');

答案 2 :(得分:0)

document.getElementsByName('rank1')[0].value
document.getElementsByName('rank2')[0].value
document.getElementsByName('rank3')[0].value