【发布时间】:2021-08-01 08:29:39
【问题描述】:
var files = [];
for (const entry of Object.entries(collection)) {
var folder = "";
entry.forEach(item => {
if (typeof item == "string") {
folder = item;
}
if (typeof item == "object") {
item.forEach(file => {
files.push(folder + "/" + file); // append files only (recursive)
})
}
});
// sometimes lists contain names of children directories. check with the top parent to exclude directory names
files = files.filter(x => !Object.keys(collection).includes(x));
}
console.log(files);
有一个javascript对象collection,它是代表某个目录的键值对的集合。
每个键都是子目录的名称,其值是列表类型,特别是仅在该目录内的文件名列表。
此代码有效,它通过一些额外的逻辑和连接递归地从基本目录中获取绝对文件路径名称的列表。
我很难重写这段代码来纯粹使用 .map()、.filter()、.find()、.pipe() 或 curry 方法
感谢反馈
【问题讨论】:
-
这个问题可能更适合Code Review。但是,请务必在发布之前使用他们的tour 并阅读他们的How to Ask 页面。
标签: javascript dictionary filter functional-programming