#node.js
Вопрос:
Я рекурсивно ищу файлы в папке и возвращаю массив с найденными данными. Наконец, я хочу добавить вызывающие параметры этой функции в массив, который я возвращаю, НО внутри рекурсивной функции и только один раз. Поэтому, когда функция вызывается в другой раз, я мог бы проверить, изменились ли параметры, и если нет, мне не нужно выполнять поиск во второй раз.
Моя функция выглядит так:
list(start, { matcher, folders = true } = {}) {
if (!fs.existsSync(start)) throw new Error(`${start} doesn't exists.`)
const files = []
const dir = fs.readdirSync(start)
for (let iCnt = 0; iCnt < dir.length; iCnt ) {
const item = path.resolve(start, dir[iCnt])
let stat = fs.statSync(item)
switch (true) {
case stat.isDirectory() amp;amp; folders:
files.push(...this.list(item, { matcher, folders }))
break
case matcher amp;amp; matcher.test(item):
files.push(new File(item))
break
case !matcher:
files.push(new File(item))
break
}
}
// anywhere here I think I have to check if this is the last iteration
// but how?
return files
}
Я долго думал, но никак не могу собраться с мыслями. Любая помощь была бы очень кстати.