Javascript 从具有AngularJS和LoDash的对象创建具有键和值的数组
我正在尝试在我的AngularJS应用程序中使用 ,我看到您可以这样定义标签、系列和数据: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] ]; 我的问题
$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总计将在数据中显示第二个阵列。稍后我会用更多的图表更新这个问题,让它更清楚!