Javascript 将新项目添加到对象和don';t更新js中对象的现有密钥

Javascript 将新项目添加到对象和don';t更新js中对象的现有密钥,javascript,jquery,Javascript,Jquery,我有2个对象,我想创建一个函数,在这里我可以传递我的两个对象,该函数应该给出一个新的对象,它可以添加在第二个对象中找到的新项目,但第一个对象上的现有键不应该被更新 例如:- var a = { name:'luisa kate should remain same', cast:'THis will remain as it is.' } var b = { name:'luisa kate should be not updated object because there

我有2个对象,我想创建一个函数,在这里我可以传递我的两个对象,该函数应该给出一个新的对象,它可以添加在第二个对象中找到的新项目,但第一个对象上的现有键不应该被更新

例如:-

var a  = {
   name:'luisa kate should remain same',
   cast:'THis will remain as it is.'
}

var b = {
  name:'luisa kate should be not updated object because there is already name in object a ',
  school:'lords light academy should be added in new object'
}

 function update(a, b) {
   var c = {};
   for (var key in a) {
     c[key] = a[key];
   }
   for (var key in b){
     if(key in b){

     }else{
       c[key] = (Array.isArray(a[key])) ? a[key].concat(b[key]) : b[key];  
     }
   } 
   return c
 }
 console.log(update(a,b))
预期产出:-

{
   name:'luisa kate should remain same',
   cast:'THis will remain as it is.'
   school:'lords light academy should be added in new object'
}

我玩了很多我的上述更新功能,但我无法解决,请帮助我

我认为您可以使用对象分配

var a  = {
   name:'luisa kate should remain same',
   cast:'THis will remain as it is.'
}

var b = {
  name:'luisa kate should be not updated object because there is already name in object a ',
  school:'lords light academy should be added in new object'
}

c = Object.assign(b, a);
console.log(c);
你也可以试试这个:

var a = { name:'luisa kate should remain same', cast:'THis will remain as it is.' }
var b = { name:'luisa kate should be not updated object because there is already name in object a ', school:'lords light academy should be added in new object' };
var c={}, k;
[a,b].forEach(function(O){
    for(k in O) if(typeof(c[k])=="undefined") c[k]=O[k];
});

console.log(JSON.stringify(c));
此外,如果您需要这两个值(类似于您自己的解决方案):

for(var-key-in-b){if(key-in-a){
?-因为在循环
for(var-key-in-b){
,显然
(key-in-b)
是正确的
var c={}, k;
[a,b].forEach(function(O){
    for(k in O) if(typeof(c[k])=="undefined") c[k]=O[k]; else c[k]=[c[k],O[k]];
});