2014-02-14 41 views
2

.txt文件我有創建通過將陣列值表

myarray = ["ram", "ram", "jan", "jan", "feb", "feb"]

陣列是否有可能創造出將在一個表格式該值的txt文件?

+0

你應該在你期待問題的格式提供支持。爲什麼你在數組中有重複的值? –

+0

你想使用前端Javascript或後端Node.js? 你是什麼意思的「表格式」? CSV? – Frax

+0

不重複的值。它可能是用戶名和密碼。兩者在我的情況是相同的。 – Hulk1991

回答

3

前端:

如果您的代碼將是在前端(瀏覽器),你可以使用以下命令:

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"); 
    } 
}); 

我沒有嘗試過的代碼還沒有,但隨時讓我知道它是否適合你。我希望這就是你需要的。

注意的前端代碼可能不會被一些過時的/糟糕的瀏覽器

+0

它工作..謝謝,但對齊不好,它顯示像'用戶名密碼******** ******** ram ramjan janfeb feb'你能幫我嗎? – Hulk1991

+1

這是一個調整內容字符串的問題...我會嘗試添加製表符和換行符,並讓您知道。 你可以修改字符串,只要你喜歡 – Frax

+0

雅確定...非常感謝你.. – Hulk1991

1

有幾種實現方法(取決於您的最終要求和約束條件)。最好的方法是使用一些模板引擎,例如underscore templateJade

但是,您也可以使用常規JavaScript Array來完成此操作。

返回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> 

我希望這將有助於。