按值合并两个数组
Merge two arrays by value
我有一个关于合并数组的具体提示:
我正在使用 google 图表,我需要做这样的事情
要执行类似的操作,我需要填充此矩阵
我在 x 轴和 y 轴上做得很好:
$scope.data= [];
$scope.data[0]= ['Months'];
angular.forEach($scope.consultors, function(consultor) {
$scope.data[0].push(consultor.no_user);
})
angular.forEach(months, function(month) {
$scope.data.push([month])
})
但是,我的问题是当我尝试将 $scope.relatorias
放在 $scope.data.
中时
这是$scope.relatorias
,这个变量有每个顾问组按月的数据,像这样:
如果你打开每个数组如下所示
我只需要推送 ganancias_netas,但我的问题是当有一个空月时,例如 anapaula 每个月都有数据,但 雷纳托 没有。
我已经尝试使用 for 或 for each 但行不通,我不是矩阵方面的专家,这是我第一次使用它。
fiddle: http://fiddle.jshell.net/rfcabal/5ftw7c8d/
/// 更新 ///
我添加了这段代码,首先用 0 $scope.data 填充,然后在 relatorios 中搜索值并应该填充 $scope.data,但由于某种原因,只需填充最后找到的值。
for (var i = 1; i < $scope.data.length; i++) {
for (var a = 1; a < $scope.data[0].length; a++) {
$scope.data[i][a] = 0;
for (var b = 0; b < $scope.relatorios[a-1].length; b++) {
console.log(a-1+' '+b+' '+3);
console.log($scope.relatorios[a-1][b]['ganancias_netas'])
$scope.data[i][a] = $scope.relatorios[a-1][b]['ganancias_netas'];
}
}
}
感谢您的帮助
我刚用 2 解决了
首先我用 0
填充每个数据 space
for (var i = 1; i < $scope.data.length; i++) {
for (var a = 1; a < $scope.data[0].length; a++) {
$scope.data[i][a] = 0;
}
}
i jus remplace 其中 fecha_emision 等于每个数组的位置 1。
for (var a = 0; a < $scope.relatorios.length; a++) {
for (var b = 0; b < $scope.relatorios[a].length; b++) {
for (var i = 1; i < $scope.data.length; i++) {
var index = $scope.data[i].indexOf($scope.relatorios[a][b]['fecha_emision']);
if(index >= 0) {
$scope.data[i][a+1] = parseFloat($scope.relatorios[a][b]['ganancias_netas']);
}
}
}
}
我有一个关于合并数组的具体提示:
我正在使用 google 图表,我需要做这样的事情
要执行类似的操作,我需要填充此矩阵
我在 x 轴和 y 轴上做得很好:
$scope.data= [];
$scope.data[0]= ['Months'];
angular.forEach($scope.consultors, function(consultor) {
$scope.data[0].push(consultor.no_user);
})
angular.forEach(months, function(month) {
$scope.data.push([month])
})
但是,我的问题是当我尝试将 $scope.relatorias
放在 $scope.data.
这是$scope.relatorias
,这个变量有每个顾问组按月的数据,像这样:
如果你打开每个数组如下所示
我只需要推送 ganancias_netas,但我的问题是当有一个空月时,例如 anapaula 每个月都有数据,但 雷纳托 没有。
我已经尝试使用 for 或 for each 但行不通,我不是矩阵方面的专家,这是我第一次使用它。
fiddle: http://fiddle.jshell.net/rfcabal/5ftw7c8d/
/// 更新 ///
我添加了这段代码,首先用 0 $scope.data 填充,然后在 relatorios 中搜索值并应该填充 $scope.data,但由于某种原因,只需填充最后找到的值。
for (var i = 1; i < $scope.data.length; i++) {
for (var a = 1; a < $scope.data[0].length; a++) {
$scope.data[i][a] = 0;
for (var b = 0; b < $scope.relatorios[a-1].length; b++) {
console.log(a-1+' '+b+' '+3);
console.log($scope.relatorios[a-1][b]['ganancias_netas'])
$scope.data[i][a] = $scope.relatorios[a-1][b]['ganancias_netas'];
}
}
}
感谢您的帮助
我刚用 2 解决了
首先我用 0
填充每个数据 spacefor (var i = 1; i < $scope.data.length; i++) {
for (var a = 1; a < $scope.data[0].length; a++) {
$scope.data[i][a] = 0;
}
}
i jus remplace 其中 fecha_emision 等于每个数组的位置 1。
for (var a = 0; a < $scope.relatorios.length; a++) {
for (var b = 0; b < $scope.relatorios[a].length; b++) {
for (var i = 1; i < $scope.data.length; i++) {
var index = $scope.data[i].indexOf($scope.relatorios[a][b]['fecha_emision']);
if(index >= 0) {
$scope.data[i][a+1] = parseFloat($scope.relatorios[a][b]['ganancias_netas']);
}
}
}
}