【发布时间】:2022-01-08 18:35:10
【问题描述】:
我有一个 JSON 对象的翻译文件,它可能包含更多 JSON 对象,我需要找到丢失的翻译。 JSON 文件前:
export const locale = {
lang: 'en',
data: {
'NAV': {
'APPLICATIONS': 'Applications',
'DASHBOARDS' : 'Dashboards',
'CALENDAR' : 'Calendar',
'ECOMMERCE' : 'E-Commerce',
'ACADEMY' : 'Academy',
'MAIL' : {
'TITLE': 'Mail',
'BADGE': '25'
},
'MAIL_NGRX' : {
'TITLE': 'Mail Ngrx',
'BADGE': '13'
},
'CHAT' : 'Chat',
'FILE_MANAGER': 'File Manager',
'CONTACTS' : 'Contacts',
'TODO' : 'To-Do',
'SCRUMBOARD' : 'Scrumboard'
}
}
};
我需要获取每个翻译,这是最低级别的项目(例如 data.NAV.MAIL.BADGE 或 data.NAV.APPLICATIONS),并查看它是否存在于我的项目的文件目录中。
打开大量文件是否效率低下,或者与通过翻译和打开每个文件(可能有数千个文件)进行翻译相比,这种差异可以忽略不计?
我正在考虑递归地展平对象,所以我得到一个包含所有键的平面对象,获取每个文件,并检查每个字符串是否存在。如果是这样,我将它移动到找到字符串的不同对象,因此不会再次检查它。不使用原始对象中剩余的任何内容。我还将添加 git ignore 中的任何内容以在此处忽略,因为它不相关。
我认为递归地进入目录中未被忽略的每个文件,然后递归地检查密钥是否在文件中,然后进入下一个密钥(如果存在)并检查可能会更好?
有什么我可能会遗漏的东西可以提高效率吗?
【问题讨论】:
标签: javascript node.js algorithm performance