Javascript 数组的索引0在someEmptyArray.push(数据)之后未定义
我正在运行Javascript 数组的索引0在someEmptyArray.push(数据)之后未定义,javascript,arrays,node.js,undefined,Javascript,Arrays,Node.js,Undefined,我正在运行fs.readdir以返回目录中的文件名数组。我正在运行一些正则表达式函数来过滤掉某些我不想显示的文件名和/或文件类型 使用以下代码,我返回了一个新的筛选数组,但该数组的0索引返回未定义 对于代码格式,请提前道歉,我正在使用手机,无法使用internet访问计算机 fs.readdir('./schema', function(err,files){ var filelist = []; if(err) throw err; else{ var index
fs.readdir
以返回目录中的文件名数组。我正在运行一些正则表达式函数来过滤掉某些我不想显示的文件名和/或文件类型
使用以下代码,我返回了一个新的筛选数组,但该数组的0索引返回未定义
对于代码格式,请提前道歉,我正在使用手机,无法使用internet访问计算机
fs.readdir('./schema', function(err,files){
var filelist = [];
if(err)
throw err;
else{
var index = files.length;
while(index>0){
filelist.push(isNOTswapfile(files[index]));
index--;
}
console.log(filelist)
}
}
)
这将返回“[undefined,'file_1.js']
为什么会发生这种情况?我如何摆脱它
谢谢
文件[索引]
第一次是未定义
,因为数组的长度总是大于最大索引(基于零的索引)。将索引--
向上移动一行,它将起作用,但是您将忽略第一个元素,因此比较=0
或index-1以获得所有元素
fs.readdir('./schema', function(err, files) {
var filelist = [];
if (err) {
throw err;
} else {
var index = files.length;
while (index >= 0) {
index--;
filelist.push(isNOTswapfile(files[index]));
}
console.log(filelist)
}
})
将
索引--
置于推送之前。或者将此var index=files.length更改为var index=files.length-1;我更喜欢在循环中使用0>=
,而循环用于可读性,但它不起作用。尽管文件[index-1]起作用。谢谢