使用下划线将对象属性合并到一个数组中

merge object properties into one array using underscore

我有以下对象。

var response = {
        "driving": [
            {
                "distance": "10,7 km",
                "duration": "28 minutes"
            },
            {
                "distance": "9,8 km",
                "duration": "25 minutes"
            },
            {
                "distance": "5,8 km",
                "duration": "18 minutes"
            }
        ],
        "walking": [
            {
                "distance": "10,4 km",
                "duration": "2 heures 10 minutes"
            },
            {
                "distance": "9,8 km",
                "duration": "2 heures 2 minutes"
            },
            {
                "distance": "5,7 km",
                "duration": "1 heure 11 min"
            }
        ]
    }

我想将这个对象转换成这样的对象数组:

[{"distance":"10,7 km","walking":"2 heures 10 minutes","driving":"28 minutes"},
{"distance":"9,8 km","walking":"2 heures 2 minutes","driving":"25 minutes"},
{"distance":"5,8 km","walking":"1 heure 11 min","driving":"18 minutes"}]

知道如何使用 underscore.js 实现此目的吗?

var _ = require('lodash');
var response = {
  "driving": [{
    "distance": "10,7 km",
    "duration": "28 minutes"
  }, {
    "distance": "9,8 km",
    "duration": "25 minutes"
  }, {
    "distance": "5,8 km",
    "duration": "18 minutes"
  }],
  "walking": [{
    "distance": "10,4 km",
    "duration": "2 heures 10 minutes"
  }, {
    "distance": "9,8 km",
    "duration": "2 heures 2 minutes"
  }, {
    "distance": "5,7 km",
    "duration": "1 heure 11 min"
  }]
}

function customizer(objValue, srcValue) {
  var object = {
    "distance": objValue["distance"],
    "driving": objValue["duration"],
    "walking": srcValue["duration"]
  }
  return object
}

console.log(_.mergeWith(response["driving"], response["walking"], customizer));

看看这个,lodash@4.11.2 支持这个