我正在为节点创建一个小型JavaScript库来管理基本的Web身份验证工作流程。当用户配置Express中间件时,他可以提供或不提供具有其首选配置的json对象,例如
printf("%d\n", 2);
printf("%lu\n", 2ul);
printf("%lu\n", 2UL);
printf("%lu\n", 1ul * 2);
printf("%lu\n", (undersigned long) 2);
如果他没有提供它,那么库应该使用fallback config json。但如果他提供它,图书馆应该使用后备加上他覆盖的属性。将用户配置与应用程序配置文件合并的最佳方法是什么?我想我可以迭代每个属性并检查用户想要覆盖哪些属性。有没有更好的方法呢?也许是一个处理这些用例的库?这些场景如何由生产库处理?
编辑: 我的解决方案基于以下答案和这篇有用的博文:
https://blog.mariusschulz.com/2015/03/30/combining-settings-objects-with-lodash-assign-or-merge
如果您想进一步了解lodash为克隆对象提供的不同方法,请查看以下问题:
Lodash - difference between .extend() / .assign() and .merge()
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以使用_.defaultsDeep
或来自https://lodash.com的_.defaults
取决于您的需求。
另请注意,这些方法会改变对象。