我想从给定的目录中选择一些随机文件。以下是我目前的实施;然而,文件夹内有太多的文件迭代它们,然后选择几个随机的文件似乎矫枉过正。如何使用Node.js从给定路径中选择多个随机文件?
有没有更好的解决方案?因为我在想知道文件夹内的所有文件是随机选择的前提条件?
const dirs = fs.readdirSync(IMAGE_BANK_SRC)
.map(file => {
return path.join(IMAGE_BANK_SRC, file);
});
const srcs_dup = [];
dirs.forEach(path => {
fs.readdirSync(path).forEach(file => {
srcs_dup.push(file);
});
});
// Pick few random ones from `srcs_dup`
要求:
- 选取的随机文件应该是唯一的
- 该文件夹包含超过预期
- 减档为尽快
感谢这个解决方案更好地拥有像@treeless那样的'hashCheck'。 –
@李新阳如果你了解Array.splice,它会根据索引取出项目。那么为什么你仍然需要使用hashCheck来检查重复文件?如果在此之后需要为其他目的重用变量文件,则可以使用Object.assign([],files)对其进行复制。 – Simon