javascriptを初めて使用しています。ここに私のコード変更可能な変数はクロージャからアクセス可能です
......
var filename, result, user=["a", "b", "c","d"];
for(var p=0;p<user.length;p++)
{
filename=userID[p]+'_'+user[p]+'.json';
fs.readFile(filename, function read(err, data)
{
if (err) {throw err;}
result = data.toString();
if (result.charAt(result.length-1) === ',')
result = result.substring(0,result.length-1) + ']}';
console.log(p+filename+result+"\n\n"); //here
});
}
は、pの値は、常にすべての反復のためにも、ファイル名はiteration.Howは、私が正しい得ることができるための最後では、このケース3には、最後のインデックスを示している「ここ」であります「ここ」のpの値。私のコンパイラは、「可変変数はクロージャからアクセス可能です」と示しています。
に従ってください。 'var'の代わりに[let binding](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let)(つまり' let p = 0')を使用してください。あるいは 'user.forEach'を使うこともできます – naomik