【发布时间】:2020-11-26 21:16:45
【问题描述】:
我有一个函数可以扫描一个目录并为其中的所有文件夹及其各自的文件构建一个键值对。
const listNotes = () => {
const listing = [];
try{
const folders = fs.readdirSync(defaultPath);
folders.forEach((folder) => {
let v = fs.readdirSync(`${defaultPath}/${folder}`);
listing[folder] = v;
});
} catch (err) {
console.log(err);
}
return listing;
};
这是这种扫描的输出
[ DailyTask: [ 'Chores.json' , 'Sunday.json'] ]
这是一个名为 DailyTask 的文件夹,其中包含 2 个文件。
如何将此结构转换为 JSON。
【问题讨论】:
-
JSON.stringify(some_object_or_array) -
您的辅助 sn-p 不是有效的 javascript 对象表示法。
-
listing是一个数组。数组不能有字符串索引。 -
呃,我不太清楚你的意思。我的评论反映了 Code-Apprentice 所说的内容。 javascript 中的数组 (
[]) 没有字符串索引。因此,如果这是一个对象,那么正确的对象表示法将是{ DailyTask: [ 'Chores.json', 'Sunday.json' ] } -
const listing = {}; listing[<a variable>] = <a value>;分配变量时不要使用{}。如果“键”是变量,则括号表示法用于数组和对象。
标签: javascript arrays json object