说我有一块JSON,我将其存储在一个文件中:
//data.json
{
"table": [
{
"text": "Balance",
"value": "0.00"
}
]
}
然后,当我在一个集合上进行迭代时,我想将var设置为存储在文件中的json的值,向其中添加一些数据,然后对其执行其他操作。我的Java大脑尝试了这个:
financials.forEach(function (value) {
...
jsondata = require('data.json')
jsondata.table.push(newTransaction)
...
doSomethingElse(jsondata)
}
在javascript / node中执行此操作的最佳和最惯用的方法是什么? 如果我尝试使用'require',我认为缓存只在循环的第一次迭代时设置jsondata的值,并且var jsondata保持增长而不是重置,导致数据在循环之间泄漏。
(我可能也错了在foreach中尝试这个。)
答案 0 :(得分:0)
我不确定我是否理解确切的问题是什么 - 但如果假设你的意思是泄漏那么意味着之前的循环工作正在出现。
无论如何,你是正确的app.ts
缓存。但是你的另一个问题是你总是在做参考。
为了清楚起见,我将需求移出forEach循环 - 在forEach中我会用Object.assign
创建数据的副本。这样你就不会编辑源代码,因为对象是通过引用传递/复制的。