Nodeschool learnyounode Filter LS练习:无法读取未定义的属性'toString'

时间:2018-05-21 20:13:16

标签: javascript node.js string

我的解决方案中没有使用。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(),它会显示错误“路径必须是字符串”。不接受我的解决方案背后的原因是什么?

1 个答案:

答案 0 :(得分:0)

在某些索引中list[i]以未定义(null)的形式到达。 确保你正在进行正确的迭代