我的目标是获取一个javascript数组对象并将其输出为以我可以将其存储在文件中的方式格式化的字符串。我想使用JSON.stringify,因为它比我自己的函数要健壮得多。如果需要的话,可以使用一个新功能。
我有一个包含多个对象的数组,它们说[{“ attr1”:“ val”,“ attr2”:“ val”,“ attr3”:“ val”},{“ attr1”:“ val”,“ attr2”: “ val”,“ attr3”:“ val”},{“ attr1”:“ val”,“ attr2”:“ val”,“ attr3”:“ val”},...]我需要将其以[
格式存储在文本文件中[{"attr1":"val", "attr2":"val", "attr3":"val"},
{"attr1":"val", "attr2":"val", "attr3":"val"},
{"attr1":"val", "attr2":"val", "attr3":"val"},
...]
我知道我可以使用JSON.stringify进行漂亮的打印,但是它将每个属性打印在新行上,而不是将每个数组项目打印在换行上。
这里是单线:
const data = [{"attr1":"val", "attr2":"val", "attr3":"val"},{"attr1":"val", "attr2":"val", "attr3":"val"},{"attr1":"val", "attr2":"val", "attr3":"val"}]
const formatted = `[${data.map(JSON.stringify).join(',\n ')}]`
console.log(formatted)
您需要首先将数组的每个对象存储在换行中,为此,您可以执行以下简单循环:
const arr = [{ "attr1": "val", "attr2": "val", "attr3": "val" },
{ "attr1": "val", "attr2": "val", "attr3": "val" },
{ "attr1": "val", "attr2": "val", "attr3": "val" }]
let text = '';
for(let obj of arr){
text += JSON.stringify(obj) + '\n'
}
console.log(text);