优化 - lodash 与许多 args 合并的兼容性

Optimization - Compatibility for lodash merge with many args

values 视为未确定的对象列表。

我想要一个有效的 ES5 版本:

var result = _.merge({}, ...values); // <-- This is what I want

由于不允许 ...anything 我做了这个:

var result _.reduce(response, function(result, value) {
  return _.merge(result, value);
}, {});

但我很确定这不是最好的方法...

有什么想法吗?

您可以对值数组使用 Function#apply。如果您不想改变原始对象,则需要 Array#concat 一个空对象:

_.merge.apply(_, [{}].concat(arr));

示例:

var arr = [{ a: 1 }, { b: 2 }, { c: 3 }];

var result = _.merge.apply(_, [{}].concat(arr));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>