javascript - object["#"] 已定义且未定义?
问题描述
我有一些 json 文件,想将它们保存为更大对象中的对象,但是当我写“objects [”#“]”时它会给出一个错误,因为它是未定义的,但是如果我在控制台中将它写在哪里.. . 它被定义了吗?
我试过 JSON.stringify 和 "\"#\"" 都没有工作
window.objects = {}
fs.readdir("default_objects", (err, files) => {
for (file of files) {
if (file == ".json") objects[" "] = JSON.parse(fs.readFileSync('default_objects/.json', 'utf8'))
else if (file.match(new RegExp('.*\.json')) && file == file.match(new RegExp('.*\.json'))[0]) objects[`${file.replace('.json','')}`] = JSON.parse(fs.readFileSync(`default_objects/${file}`, 'utf8'))
}
})
console.log(objects["#"])
//undefined even though in the default_objects folder there is a #.json file
它应该可以工作,我看不出为什么不这样做。它说未定义,但它应该是 json 文件中的对象,但它在 Windows 控制台中工作?(当我输入 objects["#"] 并按 Enter 时,它会给出正确的输出)顺便说一下,我正在使用电子。更新:我尝试将结果记录在终端中,但它也未定义?更新:我在 fs.readdir 调用的回调中尝试了 console.logging 它,它工作但值不会在回调之外更新?
解决方案
请改用 fs.readdirSync。fs.readdirSync 将提供一个文件数组,这些文件将在运行其他代码之前处理
推荐阅读
- c - C程序只写?到新文件
- asp.net-mvc - 在不注销并重新登录的情况下更新索赔值
- apache-spark - 如何在火花中将数据框转换为文本文件?
- kubernetes - 更新挂载的秘密时自动刷新 POD,但看起来没有发生
- python - 下面给出的“俄罗斯方块”游戏问题中的问题是什么?
- javascript - 如何使用jquery选择动态id
- c# - NAudio 的 BufferedWaveProvider 在录制和混合音频时变满
- angular - 我无法在 ionic 3 中查看谷歌地图?
- databricks - Databricks:在 cron 上删除根 DBFS 上的集群日志和修订
- kubernetes - Why is EMQX Persistence not working on azure kubernetes when it is working on local kubernetes?