我正在阅读包含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;
我该如何实现?非常感谢你提前!
答案 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