我试图读取一个目录的文件名,将单个文件名拆分成一个数组,然后返回一个包含索引位置和拆分文件名数组的数组。现在它只会读取并返回一个文件。到目前为止,这是我所拥有的:
const splitString = (_str) => {
var myNewString =
_str.split("-");
return myNewString;
} ;
const getInfo = (filePath) => {
let tempfileInfo = [];
let tempfileName;
let tempfileIndex;
fs.readdirSync(filePath).map((i, index) => {
return {
id: tempfileIndex = index + 1;
filename: tempfileName = splitString(i);
}
}); tempfileInfo.push(tempfileIndex, tempfileName);
console.log(tempfileInfo); //returns [20, ['9', 'YE', 'BLU', 'ITEM', '.png']]
}
我试过将forEach()添加到.map函数中,但这只会产生重复一次的同一个数组,然后再产生另一个数组,等等。直到它到达目录中文件的末尾。另外,我不认为我实际上需要返回的索引,但如果出于某种原因,它将有助于我的程序的其余部分,我不明白为什么索引是20要么(是的,有20个文件在文件夹中,我添加1),它正在拉的文件是直接在所有文件的中心,它从后面开始索引,所以什么是.map索引在这里?这可能是一些简单的东西,但由于某种原因,我只是现在看不到它。提前感谢任何帮助!
2条答案
按热度按时间bvhaajcl1#
你的代码中已经有了一个解决方案。
Array.map
返回一个新的Array
,你只需要给它分配一个变量。aiqt4smr2#
我解决了自己的问题。事实证明,我不需要去那么深。这返回了正确的数组: