我将某个变量保存为txt文件中的对象数组,问题是如何读取它们并将其与for循环中的另一个变量进行比较。
谢谢。
我在txt文件中保存的格式:
[{"sekke":"445,675","halfsekke":"145,600"}]
我想读的代码是:
NodeJs:
var array = fs.readFileSync('data.txt').toString().split("\n");
console.log(array[0]['sekke'])
for (var key in array[0]['sekke']) {
console.log("key " + key + " has value " + array);
}
这是错的,我怎么能读到像这样的东西?
if (array['sekke] == 100){
console.log("is ok");
}
答案 0 :(得分:2)
尝试使用以下代码:
fs.readFile('data.txt', 'utf8', function read(err, data) {
if (err) {
throw err;
}
data = JSON.parse(data);
var dataObject = data[0];
for (i=0;i<Object.keys(dataObject).length;i++) {
var ss = dataObject[i];
var key = Object.keys(ss);
for(varj=0;j<ss[key];j++){
//your if condition logic
}
}
});
答案 1 :(得分:2)
如果要将字符串像对象一样使用,则需要将字符串解析回JSON。
如果你的文件是数组的集合(每行1个数组),那么就像你一样将它拆分,然后用JSON.parse
解析它。你需要分别在每一行上运行它,所以使用map或loop。
如果您的文件是一个大的对象数组,那么只需读入它然后用JSON.parse
解析整个事物。
另外,考虑使用readFile的异步版本,因为使用readFileSync会在读取时阻塞整个node.js应用程序(随着文件变大会出现问题)