数组到对象使用 Underscorejs

Array to object using Underscorejs

我有一个包含多个对象的数组,

[{Reinvent:24},{Reorganize:18},{Reduce:36},{Reimagine:30}]

我正在寻找以下格式的输出,仅使用 underscorejs,

{Reinvent:24,Reorganize:18,Reduce:36,Reimagine:30}

这应该可以满足您的要求:

var result = _.extend.apply({}, data);

您可以将任意数量的源参数传递给下划线的 extend function. To take advantage of this we can use Javascript's apply 函数以将参数作为数组提供。

或者你可以使用 ES6 的 spread operator:

var result = _.extend({}, ...data);

var data = [{Reinvent:24},{Reorganize:18},{Reduce:36},{Reimagine:30}];

var result = _.extend.apply({}, data);   

document.getElementById('result').textContent = JSON.stringify(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

<p>
  <pre id="result"></pre>
</p>

您可以使用 _.reduce:

var res = _.reduce(arr, function(acc, el) {
  for (var key in el) {
    acc[key] = el[key];
  }
  return acc;
}, {});

var arr = [{Reinvent:24},{Reorganize:18},{Reduce:36},{Reimagine:30}];

var res = _.reduce(arr, function(acc, el) {
  for (var key in el) {
    acc[key] = el[key];
  }
  return acc;
}, {});

console.log(res);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>