将对象数组转换为对象

时间:2012-09-29 14:07:44

标签: javascript node.js

在我的节点REST应用程序中,我有一个函数可以在数据库中查询多个记录并返回一个对象数组 由于我希望它返回一个JSON对象,我需要一种方法将对象数组转换为包含所有记录的单个对象。
不幸的是,我无法在互联网上找到一个关于这样做的例子。
任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:4)

你为什么要那样做?它完全没有JSON字符串化一个项目数组,你会得到像

这样的结构
"[{},{},{},...]"

这甚至可能是一个优势,因为您保证物品的订单

答案 1 :(得分:1)

请参阅underscore.js的object function

答案 2 :(得分:0)

让我们假设您有一个对象数组,其格式为:

log {
    name: "foo",
    log: "bar"
 }

你能做到:

var logs,//Array of logs
    logObj = {}

for(i=0, i<logs.Length i++) {
    logObj[logs[i].Name] = logs[i].log;
 }

循环后logObj应为:

logObj {
  foo: bar,
  nextName: cool comment,
  etc.
}

答案 3 :(得分:0)

我只需要使用共享表单组件的响应来完成此操作,而且很庆幸的是,在一个带有某些新JS功能的衬里中完成该操作非常简单。

const arr = [
  { name: 'Colin' },
  { length: 162 },
  { colour: 'pink' }
]

const obj = arr.reduce((acc, element) => Object.assign(acc, ...element), {})

/*
  obj = {
    name: 'Colin',
    length: 162,
    colour: 'pink'
  }
*/