javascript - 在这种特殊情况下如何将数组转换为对象?

标签 javascript node.js

我正在转换一些数据,以便以可读的方式将其发送到前端。

我只是将一些 XML 数据转换成 JSON,我得到了一个对象,但每个值都是 key : ['value'],我需要它 key: 'value'

我发送这样的数据 res.status(200).json({dealersData}); 其中 dealersData 返回这个

{
  "dealersData": [
    {
      "DealerId": [
        "1"
      ],
      "DealerName": [
        "Carmen"
      ],
      "NickName": [
        "Carmen"
      ],
      "Picture": [
        "00001.jpg"
      ],
      "Active": [
        "1"
      ],
      "LegalId": [
        "111111111"
      ],
      "TypeId": [
        "1"
      ]
    },
    {
      "DealerId": [
        "14"
      ],
      "DealerName": [
        "Jaz"
      ],
      "NickName": [
        "Jaz"
      ],
      "Active": [
        "1"
      ],
      "LegalId": [
        "111111187"
      ],
      "TypeId": [
        "1"
      ]
    }
  ]
}

所以你可以看到我正在获取数据 "TypeId":["1"] 等等,我不想那样,我想要 "TypeId": 1,那么我应该如何使用 Lodash 将该数组转换为对象?

最佳答案

对于每个经销商,遍历键并将值替换为值 [0]。

dealersData = dealersData.map( function( dealer ){
    Object.keys( dealer ).forEach( function(key){
        dealer[key] = dealer[key][0];   
    })
     return dealer;
 });

http://jsfiddle.net/r38u4qag/1/ (或 ES2015 胖箭头版本:http://jsfiddle.net/r38u4qag/2/)

关于javascript - 在这种特殊情况下如何将数组转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33026548/

相关文章:

javascript - 在 IE 中输入字段不显示光标或无法输入字母

javascript - jquery 将内容保留在 div 中,直到 ajax 内容到达

javascript - 谷歌地图标记在拖动后消失

node.js - Mongoose:模式与模型?

javascript - 如何使用 Passport.js 本地策略检查当前密码并(如果正确)更新密码

javascript - 字符串解密: unmatched ) in regular expression

javascript - 在 Node.js 脚本中运行两个脚本

javascript - 如何在 Node.js 中追加到新行

javascript - Node.js 中如何将 ID 从一个路由器传递到另一个路由器

javascript - jQuery PreventDefault() 不适用于按钮