通过将数组值转换为表来创建 .txt 文件 [关闭]
Posted
技术标签:
【中文标题】通过将数组值转换为表来创建 .txt 文件 [关闭]【英文标题】:Create a .txt file by converting array value as table [closed] 【发布时间】:2014-03-13 15:17:44 【问题描述】:我有一个数组
myarray = ["ram", "ram", "jan", "jan", "feb", "feb"]
是否可以创建一个 .txt 文件以表格格式包含此值?
【问题讨论】:
您应该提供您期望的问题格式。为什么数组中有重复的值? 您想使用前端 javascript 还是后端 Node.js? “表格格式”是什么意思? CSV? 不是重复值。它可能是用户名和密码。就我而言,两者都是一样的。 那为什么不使用对象而不是数组呢?我的意思是对象数组 @Frax Table 的意思是,类似于用户名和密码的报告。 【参考方案1】:有几种方法可以实现(这取决于您的最终要求和限制)。最好的方法是使用一些模板引擎,例如underscore template 或 Jade。
不过,您也可以使用常规 JavaScript 数组来实现。
返回 html 表格示例:
var myarray = ["user1", "pass1", "user2", "pass2", "user3", "pass3" ],
output = [];
output.push('<table>')
for (var i = 0; i < myarray .length; i += 2)
output.push('<tr><td>')
output.push(myarray [i])
output.push('</td><td>')
output.push(myarray [i+1])
output.push('</td></tr>')
;
output.push('</table>')
// output.join('') gives you formatted HTML array
输出如下(请注意,HTML 已被格式化以提高可读性):
<table>
<tr><td>user1</td><td>pass1</td></tr>
<tr><td>user2</td><td>pass2</td></tr>
<tr><td>user3</td><td>pass3</td></tr>
</table>
我希望这会有所帮助。
【讨论】:
【参考方案2】:前端:
如果您的代码将在前端(浏览器)上,您可以使用以下代码:
var row_width = 40;
var content = "";
content += "Username" + new Array(row_width + 1).join(" ") + "Password\n";
content += "********" + new Array(row_width + 1).join(" ") + "********\n";
for (var i = 0; i < myarray.length; i += 2)
content += myarray[i] + new Array(row_width - myarray[i].length + 9).join(" ");
content += myarray[i+1];
content += "\n";
// Build a data URI:
uri = "data:application/octet-stream," + encodeURIComponent(content);
// Click on the file to download
// You can also do this as a button that has the href pointing to the data URI
location.href = uri;
这是一个工作前端示例的链接:Fiddle
将文件命名为 something.txt。
后端:
如果你想在后端使用 Node.js 来生成并保存这个文件,你需要使用如下:
如上循环遍历数组并创建“内容”字符串后,按如下方式保存文件:
var fs = require('fs');
fs.writeFile("/path_to_file/table.txt", content, function (err)
if (err)
console.log(err);
else
console.log("File saved");
);
我还没有尝试过该代码,但请随时告诉我它是否适合您。我希望这就是你所需要的。
注意一些过时/坏的浏览器可能不支持前端代码
【讨论】:
它有效.. 谢谢,但对齐不好,它显示为Username Password******** ********ram ramjan janfeb feb
你能帮我吗?
这是调整内容字符串的问题...我会尝试添加制表符和换行符,然后通知您。你可以随意修改字符串
是的……非常感谢……
我更新了代码,在字符串中添加了“\n”换行符。让我知道它是否看起来更好
如果您想将其保留为文本,您只需要正确设置空格数量即可。我添加了更多新行。它现在应该看起来更好,但需要更多的调整。我们还可以将文件作为 HTML 格式,其中包含一个表格和一些 CSS 规则以上是关于通过将数组值转换为表来创建 .txt 文件 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章