看30 seconds of code看到的
深度合并两个对象,使用函数来处理两者中存在的键。
https://www.30secondsofcode.org/js/s/deep-merge
const deepMerge = (a, b, fn) =>
[...new Set([...Object.keys(a), ...Object.keys(b)])].reduce(
(acc, key) => ({ ...acc, [key]: fn(key, a[key], b[key]) }),
{}
);
冒号不是特殊语法。他就是定义对象
({a:1,b:2})
同理。[a]
则是把 a 当作一个变量,用值来当 key