如何使用Lodash按remoteJSON键过滤localJSON并对比值?
基于远程JSON键过滤本地JSON并对比值
核心方案
利用Object.keys()获取远程JSON的所有键,再通过Lodash的_.pick()方法从本地JSON中筛选出仅包含这些键的对象,最后用_.isEqual()对比两个对象的值。这种方式无需硬编码要删除的键,完全适配远程JSON的键结构,灵活高效。
完整代码示例
// 引入Lodash库 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script> <script> const remoteJSON = { "address": "LAN", "city": "LAN-CITY", "code": "A1" }; const localJSON = { "city": "LAN-CITY", "code": "A1", "address": "LAN", "extraKey":"I am not required..please remove me while comparing" }; // 提取远程JSON的所有键名 const remoteKeys = Object.keys(remoteJSON); // 筛选本地JSON,仅保留远程JSON存在的键 const localJSONFiltered = _.pick(localJSON, remoteKeys); // 对比过滤后的本地JSON与远程JSON的值 console.log(_.isEqual(remoteJSON, localJSONFiltered)); // 输出 true </script>
为什么这是更优解
- 无需手动列举所有要删除的额外键,避免了硬编码的繁琐和维护成本
- 自动适配远程JSON的键结构,哪怕远程JSON的键新增或减少,代码都不需要修改
_.pick()直接生成目标对象,逻辑清晰,性能也更高效
内容的提问来源于stack exchange,提问作者Maria Ruffalo
相关产品推荐
相关产品推荐

