【发布时间】:2015-03-02 16:55:14
【问题描述】:
我有一个 JS 代码包来处理基本的国际化。
var EN = {
messages: {
newButton: {
text: "New"
},
userSettings: {
language: {
selectYourLanguage: "Choose your preferred language",
fr: "French",
en: "English"
}
}
}
};
var FR = {
messages: {
newButton: {
text: "Nouveau"
},
userSettings: {
language: {
selectYourLanguage: "Choissez votre langage préféré:",
fr: "Français",
en: "Anglais"
}
}
}
};
我想知道是否可以通过它们的“路径”来比较这两个对象。我希望能够确保没有不在第二个对象中的第一个对象的路径。
我想确保有人为一种语言添加翻译,永远不要忘记将它也添加到另一种语言,以快速失败。
我希望将来能够添加新的语言。
有什么优雅通用的方法来实现这一点吗?
我正在寻找类似的东西
haveSameKeys(objectList)
其中 objectList 包含对象(如 FR / EN / ...)。顺序应该无关紧要。该列表将保持相对较小的大小。
我更喜欢返回结果的纯解决方案,不涉及警报或抛出错误等副作用。
我并不真正关心运行时性能,因为它会在开发/集成中快速失败并且不会在生产中运行。
【问题讨论】:
-
迭代和比较?
-
您可能想要删除“关于库或自定义代码的任何想法来处理它?”因为要求库或代码是关闭问题的理由。
-
你真的希望有人给你完整的解决方案,而你自己却没有做任何事情来解决它吗?至少我没有看到你尝试的任何证据。
-
查看我的对象匹配器库:github.com/bvaughn/jasmine-object-matchers。做你正在寻找的东西,但在 Jasmine 插件的上下文中。你应该可以移植它。
标签: javascript