首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组到对象,使用Underscorejs

数组到对象,使用Underscorejs
EN

Stack Overflow用户
提问于 2016-08-18 15:15:18
回答 2查看 337关注 0票数 1

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

代码语言:javascript
复制
[{Reinvent:24},{Reorganize:18},{Reduce:36},{Reimagine:30}]

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

代码语言:javascript
复制
{Reinvent:24,Reorganize:18,Reduce:36,Reimagine:30}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-18 15:59:48

您可以使用_

代码语言:javascript
复制
var res = _.reduce(arr, function(acc, el) {
  for (var key in el) {
    acc[key] = el[key];
  }
  return acc;
}, {});

代码语言:javascript
复制
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);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

票数 1
EN

Stack Overflow用户

发布于 2016-08-18 15:58:27

这应该是你想做的事:

代码语言:javascript
复制
var result = _.extend.apply({}, data);

您可以传递任意数量的源参数到下划线的extend函数。为了利用这一点,我们可以使用Javascript的apply函数作为数组提供参数。

另外,您也可以使用es6的spread operator

代码语言:javascript
复制
var result = _.extend({}, ...data);

代码语言:javascript
复制
var data = [{Reinvent:24},{Reorganize:18},{Reduce:36},{Reimagine:30}];

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

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39021838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档