使用lodash将对象数组转换为对象

Leo*_*gos 0 javascript arrays object lodash

我有一个对象数组,我需要转换为单个对象.例如:需要转换

var data=[
  {
    "name": "EMPRESA",
    "value": "CMIP"
  },
  {
    "name": "DSP_DIRECAO",
    "value": "CMIP@040@1900-01-01"
  },
  {
    "name": "DSP_DEPT",
    "value": "CMIP@040@1900-01-01@42@1900-01-01"
  },
Run Code Online (Sandbox Code Playgroud)

...]

   {
    "EMPRESA": "CLCA",
    "DSP_DIRECAO": "CLCA@100@1900-01-01",
    "DSP_DEPT": "CLCA@100@1900-01-01@100@1900-01-01",
    ...
  }
Run Code Online (Sandbox Code Playgroud)

将数据[x] [名称]转换为属性,将数据[x] [值]转换为属性值谢谢

ade*_*neo 6

不使用LoDash,而是直接使用 reduce()

var obj = data.reduce( (a,b) => {
    return a[b.name] = b.value, a;
}, {});
Run Code Online (Sandbox Code Playgroud)

var data=[
  {
    "name": "EMPRESA",
    "value": "CMIP"
  },
  {
    "name": "DSP_DIRECAO",
    "value": "CMIP@040@1900-01-01"
  },
  {
    "name": "DSP_DEPT",
    "value": "CMIP@040@1900-01-01@42@1900-01-01"
  }
]

var obj = data.reduce( (a,b) => {
    return a[b.name] = b.value, a;
}, {});

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

在LoDash中做同样的事情就像是

var obj = _.transform(data, (a,b) => {
    return a[b.name] = b.value, a;
},{});
Run Code Online (Sandbox Code Playgroud)