我的解决方案中没有使用。forEach()
方法。这是我的解决方案:
var fs = require('fs');
var path = require('path');
fs.readdir(process.argv[2], function (err, list) {
if(err)
return console.log(err);
for(var i=0;list[i]!='\0';i++)
{
if('.'+process.argv[3]===path.extname(list[i].toString()))
console.log(list[i]);
}
});
我收到以下错误:
if('.'+process.argv[3]===path.extname(list[i].toString()))
^
TypeError: Cannot read property 'toString' of undefined
at /home/dhairyakhale/Desktop/NodeTutorials/program.js:11:49
at FSReqWrap.oncomplete (fs.js:135:15)
如果我不使用.toString()
,它会显示错误“路径必须是字符串”。不接受我的解决方案背后的原因是什么?
答案 0 :(得分:0)
在某些索引中list[i]
以未定义(null)的形式到达。
确保你正在进行正确的迭代