我有一个获取目录内容的递归方法,但我想忽略某个对象(例如,如果它是.DS_store或其他东西)但我怎么能让它忽略它并继续而不返回一个值
这样的东西,但显然继续不起作用......
...
info.children = fs.readdirSync(filename).map(function(child) {
if (child.indexOf('.') == 0)
continue;
return dirTree(filename + '/' + child);
});
...
感谢。
答案 0 :(得分:0)
使用filter
首先获取正确的数组元素,然后map
。
类似的东西:
...
info.children = fs.readdirSync(filename).filter(function (child) {
return child.indexOf('.') !== 0;
}).map(function (child) {
return dirTree(filename + '/' + child);
});
...
答案 1 :(得分:0)
Map本身执行1:1映射,输出数组将包含与输入数组相同数量的元素。
info.children = fs.readdirSync(filename).filter(isValidFile).map(doStuff);
// Used to filter out unwanted entries (files)
function isValidFile (child) {
return (child !== '.DS_store' && child.indexOf('.') !== 0);
}
// Used to perform your actual logic
function doStuff (child) {
return dirTree(filename + '/' + child);
}