如何使用javascript合并两个对象?

如何使用javascript合并两个对象?,javascript,lodash,Javascript,Lodash,我如何合并像这样的对象? “b”对象键将仅包括输出的对象。您提供的初始代码无效(变量b) 你可以这样做: 常数a={ 咖啡:“咖啡”, 芒果:“10个芒果”, 鞋:“2双鞋”, 包:“5包”, 美国广播公司:“德福” } const props=['coffee'、'abc'、'bag']; const mergerd_output_将为={}; forEach(propName=>mergerd_输出将是[propName]=a[propName]); 或 const a={ 咖啡:“咖啡

我如何合并像这样的对象?
“b”对象键将仅包括输出的对象。

您提供的初始代码无效(变量b)

你可以这样做:


常数a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
}
const props=['coffee'、'abc'、'bag'];
const mergerd_output_将为={};
forEach(propName=>mergerd_输出将是[propName]=a[propName]);

const a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
}
const b={coffee:null,abc:null,bag:null};
const mergerd_output_将为={…b};
key(mergerd\u output\u will\u be).forEach(propName=>
合并输出将为[propName]=a[propName]
)

基本上你有两种方法,使用
。。。扩展运算符
对象.assign()

const coffee='coffee'
常数abc='abc';
const bag=‘bag’
常数a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
}
常数b={
咖啡
美国广播公司,
纸袋
}
常量result1={…a,…b};
const result2=Object.assign({},a,b)
console.log(result1)
log(result2)
您可以使用每个键值来使用和构造一个对象

a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
}
设b={'coffee':null,'abc':null,'bag':null};
设c=Object.keys(b).reduce((current,key)=>({…current,[key]:a[key]}),{});

控制台日志(c)首先,对象应该是其中的键值对,为此您可以将b更改为数组,例如b=['coffee','def','5bags']

然后,使用下面的代码生成预期的输出

a = {
    coffee: 'Coffees',
    mango: '10 Mangos',
    shoe: '2 Shoes',
    bag: '5 Bags',
    abc: 'D E F'
}

b = {
    coffee,
    abc,
    bag,
}


mergerd_output_will_be = {
    coffee: 'Coffees',
    abc: 'D E F',
    bag: '5 Bags'
}
a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
};
让b=['coffee','abc','bag'];
让输出={};
for(设i=0;i
您可以从对象
a
对象
b

const a={
咖啡:“咖啡”,
芒果:“10个芒果”,
鞋:“2双鞋”,
包:“5包”,
美国广播公司:“德福”
}
常数b={
咖啡:空,
abc:null,
行李:空
}
常量结果=u.pick(a,u.keys(b))
console.log(结果)

在您的代码示例中,“b”不是一个有效的JavaScript对象。为什么这个标记为PHP和Laravel?可能是@cgTag的重复?我认为这是简写属性名(ES2015)。这是一个有效的例子答案似乎不正确,因为OP想要两个对象的交集而不是并集。描述中的合并_对象仅包含公共字段。你的答案将合并这两个对象。@HussainAliAkbar完全正确,我没有正确理解OP的问题,我甚至对这个答案投了更高的票。现在我甚至不能删除我的upvote--顺便说一句,让我们说一下标题不清楚,因为“合并”两个对象意味着这个答案所说的,如果你是对的,标题不清楚。OP想要的是两个对象的交集,而不是“合并”。如何使用javascript合并两个对象?@kemicofa第二个对象是什么及其值?那我怎么回答呢?只是投票结果太酷了,但我是速记的忠实粉丝(即使只是语法上的甜点),那么:
让c=Object.keys(b)reduce((current,key)=>({……current,[key]:a[key]}),{})@quirimmo啊,我正想弄明白。谢谢
let a = {
  coffee: 'Coffees',
  mango: '10 Mangos',
  shoe: '2 Shoes',
  bag: '5 Bags',
  abc: 'D E F'
 };
 let b = ['coffee', 'abc', 'bag'];
let output = {};
for( let i = 0; i < b.length; i++) {
 output[b[i]] = a[b[i]];
}