【发布时间】:2026-02-05 13:50:01
【问题描述】:
这是我的代码:
var data = require('./campSample.json');
var dataArray = data.resultset.result;
var fs = require('fs');
for(var i = 0; i < dataArray.length; i++){
fs.writeFile("./campList", dataArray[i]["-facilityName"], function (err) {
if(err){
return console.log(err);
}
});
}
我试图让 for 循环遍历数组中的每个项目,获取设施名称,并将设施名称写入文件。当我运行上面的代码时,它只写数组中第一项的设施名称。有一个更好的方法吗?我正在使用的 campSample.json 只是一个示例。我想使用的实际数组中有大约 4000 个项目。这是campSample.json的内容:
{
"resultset": {
"-count": "4904",
"-resultType": "campgrounds",
"result": [
{
"-availabilityStatus": "N",
"-contractID": "GA",
"-contractType": "STATE",
"-facilityID": "530145",
"-facilityName": "A. H. STEPHENS STATE HISTORIC PARK",
"-faciltyPhoto": "/webphotos/GA/pid530145/0/80x53.jpg",
"-latitude": "33.5633333",
"-longitude": "-82.8966667",
"-shortName": "C145",
"-sitesWithAmps": "Y",
"-sitesWithPetsAllowed": "Y",
"-sitesWithSewerHookup": "N",
"-sitesWithWaterHookup": "Y",
"-state": "GA"
},
{
"-availabilityStatus": "N",
"-contractID": "OH",
"-contractType": "STATE",
"-facilityID": "960023",
"-facilityName": "A.W. MARION STATE PARK",
"-faciltyPhoto": "/webphotos/OH/pid960023/0/80x53.jpg",
"-latitude": "39.6336111",
"-longitude": "-82.8747222",
"-shortName": "P023",
"-sitesWithAmps": "Y",
"-sitesWithPetsAllowed": "Y",
"-sitesWithSewerHookup": "N",
"-sitesWithWaterHookup": "N",
"-state": "OH"
},
{
"-availabilityStatus": "N",
"-contractID": "NRSO",
"-contractType": "FEDERAL",
"-facilityID": "72346",
"-facilityName": "ACKER ROCK LOOKOUT",
"-faciltyPhoto": "/webphotos/NRSO/pid72346/0/80x53.jpg",
"-latitude": "43.0523056",
"-longitude": "-122.6456111",
"-shortName": "ARCL",
"-sitesWithAmps": "N",
"-sitesWithPetsAllowed": "Y",
"-sitesWithSewerHookup": "N",
"-sitesWithWaterHookup": "N",
"-state": "OR"
}
]
}
}
【问题讨论】:
-
你能告诉我们这个文件
"./campList"的预期结果吗? -
只连接一次
string和fs.writeFile怎么样? -
对于上述 json 样本,预期输出如下:A. H. STEPHENS STATE HISTORIC PARK A.W. MARION STATE PARK ACKER ROCK LOOKOUTTE HISTORIC PARK 但是现在我看到了顺序,当前的代码实际上只是写了第三项的设施名称,Acker Rock...
-
不要
return console.log(err)。您所做的只是返回undefined。只需记录错误即可。如果要将 writeFile 用作异步操作,请确保每个文件名都是唯一的。
标签: javascript arrays json for-loop