javascript – 合并没有新密钥的JSON对象

前端之家收集整理的这篇文章主要介绍了javascript – 合并没有新密钥的JSON对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如何合并两个JSON对象但不包含第一个对象中不存在的属性

输入

  1. var obj1 = { x:'',y:{ a:'',b:'' } };
  2. var obj2 = { x:1,y:{ a:1,b:2,c:3 },z:'' };

产量

  1. obj1 = { x:1,b:2 } };

PS.有一个名为preventExtensions的对象的方法,但它似乎只阻止属性的立即扩展而不是更深的属性.

最佳答案
  1. /*
  2. Recursively merge properties of two objects
  3. ONLY for properties that exist in obj1
  4. */
  5. var obj1 = { x:'',z:'' };
  6. function merge(obj1,obj2) {
  7. for( var p in obj2 )
  8. if( obj1.hasOwnProperty(p) )
  9. obj1[p] = typeof obj2[p] === 'object' ? merge(obj1[p],obj2[p]) : obj2[p];
  10. return obj1;
  11. }
  12. merge(obj1,obj2 );
  13. console.dir( obj1 ); // { x:1,b:2 } }

猜你在找的JavaScript相关文章