Javascript 从具有AngularJS和LoDash的对象创建具有键和值的数组

Javascript 从具有AngularJS和LoDash的对象创建具有键和值的数组,javascript,angularjs,lodash,Javascript,Angularjs,Lodash,我正在尝试在我的AngularJS应用程序中使用 ,我看到您可以这样定义标签、系列和数据: $scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012']; $scope.series = ['Series A', 'Series B']; $scope.data = [ [65, 59, 80, 81, 56, 55, 40], [28, 48, 40, 19, 86, 27, 90] ]; 我的问题

我正在尝试在我的AngularJS应用程序中使用

,我看到您可以这样定义标签、系列和数据:

$scope.labels = ['2006', '2007', '2008', '2009', '2010', '2011', '2012'];
$scope.series = ['Series A', 'Series B'];

$scope.data = [
  [65, 59, 80, 81, 56, 55, 40],
  [28, 48, 40, 19, 86, 27, 90]
];
我的问题是,在我的例子中,标签是来自对象的键值,而序列和数据是来自此类对象的值和属性

例如,给出以下示例:

标签应该是:['324'、'369'、'391'、'396'、'KE-22']钥匙,来自车内所有物体

系列将是:[“行程”,“总计”]来自汽车的价值

数据将是来自汽车的财产:

[
   ['1','4','5','3','7'],
   ['00:00:08','00:00:13','00:00:24','00:00:03','00:00:01']
]
有什么方法可以创建这样的数组吗

现在,我使用LoDash创建对象,如下所示:

dataByMonth = _.mapValues(dataByMonth, function(month) {
    var obj = {};
    var carArray = [];
    carArray = _.groupBy(month, 'car');
    obj.Cars = _.groupBy(month, 'car');

    obj.Drivers = _.groupBy(month, 'driver');

    _.each(obj, function(groupsValue, groupKey) {
        obj[groupKey] = _.mapValues(groupsValue, function(groupValue) {
            return _.reduce(groupValue, function(sum, trip) {
                sum['trips']++;
                sum['duration']+= moment.utc(trip.duration, 'HH:mm:ss');
                sum['total'] = moment.utc(sum.duration). format('HH:mm:ss')
                //addDuration(sum.duration, car.duration); 
                return sum;
            }, {trips: 0, duration: 0, total:0})
        });
    })

    return obj;
});

$scope.statistics = dataByMonth;

从你的例子中,我不明白输入是什么,预期输出是什么。您能否提供一个示例输入数据以及您想要实现的目标?数组中的顺序重要吗?嗨@Etai!输入是由问题的最后一段代码创建的图像中包含对象的对象。输出需要3个不同的阵列标签、系列和数据才能填充图表。阵列中的顺序仅对序列和数据有影响,因为序列1跳闸将在数据中显示第一个阵列,序列2总计将在数据中显示第二个阵列。稍后我会用更多的图表更新这个问题,让它更清楚!