使用节点 readdir 并得到一个未定义的错误不知道为什么 learnyounode

Using node readdir and getting an undefined error not sure why learnyounode

当我 运行 第 14 行 returns 下面的列表 [i] 为未定义时,我不确定为什么。特别是因为我按预期登录了第 10 行 returns。下面是代码,

  1 var fs = require('fs');                                                          
  2 var thatDir = process.argv[2];                                                   
  3 var ext = process.argv[3];                                                       
  4 var newfile;                                                                     
  5 fs.readdir(thatDir, function(err, list){                                        
  6     console.log(list);                                                          
  7     console.log(ext);                                                           
  8     console.log('banana' + list[0]);                                            
  9     var wtf = list[0].toString();                                               
 10     var anotherwtf = wtf.search('.' + ext);                                     
 11     console.log(anotherwtf);                                                    
 12     console.log('wtf is ' + wtf);                                               
 13     for(var i = 0; i <= list.length; i++){                                      
 14         if ( list[i].search('.' + ext) != -1 ){                                 
 15         console.log(list[i]);                                                   
 16         }                                                                       
 17     }                                                                           
 18 });

您想 i < list.length 使用小于 < 而不是小于或等于 <=

数组是 0 索引的,您开始从 list[0] 获取项目,并且从 0 到 list.length - 1 的所有 i 都有项目,但是 list[list.length]不存在。