![](/img/trans.png)
[英]How can I write a Type Declaration for a JSX attribute from Google AMP that uses square brackets?
[英]How can I write an array to a file in nodejs and keep the square brackets?
我想写一个矩阵到.js文件。 当我使用console.log(矩阵)时,一切都很好但是当我将它写入文件时,它会有所不同。
var fs = require("fs");
var matrix = new Array(10);
for(var i=0;i<matrix.length;i++) matrix[i]=[];
for (var i = 0; i < 100 ; i++)
{
var n = i%10;
matrix[n].push(i);
}
console.log(matrix);
//write it as a js array and export it (can't get brackets to stay)
fs.writeFile("./matrixtest.js", matrix, function(err) {
if(err) {
console.log(err);
}
else {
console.log("Output saved to /matrixtest.js.");
}
});
所以console.log给了我[[0,10,20,30,... 100],......,[1,11,21,31,... 91]等等。 但是打开matrixtest.js就是这样:
0,10,20,30,40,50...
所有数字用逗号分隔,没有括号。 如何防止它转换为该格式? 谢谢。
在保存之前将其字符串化(JSON.stringify),然后在重新读取时将其解析(JSON.parse)。
fs.writeFile("./matrixtest.js", JSON.stringify(matrix), function(err) {
if(err) {
console.log(err);
}
else {
console.log("Output saved to /matrixtest.js.");
}
});
然后在读回来的时候
var matrix = JSON.parse(contents);
当您将一个数组写入文件时,它将被转换为字符串,因为JavaScript无法弄清楚如何按原样编写数组。 这就是它失去格式的原因。 您可以将数组转换为这样的字符串并检查
var array = [1, 2, 3, 4];
console.log(array.toString());
// 1,2,3,4
因此,要解决此问题,您可能希望将其转换为这样的JSON字符串
fs.writeFile("./matrixtest.js", JSON.stringify(matrix), function(err) {
...
}
系统不知道你想用[]将数组存储到文件中。 它只是将数组的内容放入文件中。
然后,在阅读时,使用JSON.parse()。 JSON.parse()方法解析JSON字符串,构造字符串描述的JavaScript值或对象
fs.writeFile('./matrix.js', JSON.stringify(matrix), function (err) { if(err) { console.log(err); } }) fs.readFile('./matrix.js', function(err, data) { console.log(JSON.parse(data)); //Do whatever you want with JSON.parse(data) });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.