Javascript:如果对象具有匹配的键,如何用第二个对象的值替换第一个对象的值

use*_*730 0 javascript

我有 2 个 js 对象:

var date_dict = {2017_M1: 0, 2017_M10: 0, 2017_M11: 0}
var data_dict = {2017_M1: 10,  2017_M11: 50}
Run Code Online (Sandbox Code Playgroud)

预期输出= {2017_M1: 10, 2017_M10: 0, 2017_M11: 50}

目标:将 data_dict(目标)的值映射到存在的 date_dict(源)。保留 date_dict (源)的所有键。如果 data_dict 中不存在,则保留 date_dict 的值。

data_dict 中永远不会有任何在 date_dict 中不存在的键(这是日期的宇宙)。

我已经尝试过,基于切换键/值,回答了 如何用另一个对象的匹配键值替换对象键

下面的尝试仅返回 date_dict,它没有获取 data_dict 值。

谢谢 :

var expected_output = Object.fromEntries(
                Object.entries(date_dict).map(([k,v]) => [ k, (data_dict[v] || v)])

Run Code Online (Sandbox Code Playgroud)

Jac*_*cob 5

您可以使用展开运算符来实现此目的:

const expected_output = {
  ...date_dict,
  ...data_dict
};
Run Code Online (Sandbox Code Playgroud)