结合多维数组、javascript

结合多维数组、javascript,javascript,arrays,Javascript,Arrays,我正试着做一些简单的事情,但不起作用 我有两个数组,它们的结构如下: total -> [0]-> [Day: 2016-04-19, Total: 23] [1]-> [Day: 2016-04-18, Total: 20] failed -> [0]-> [Day: 2016-04-19, Failed: 2] [1]-> [Day: 2016-04-18, Failed: 0] arr -> [0]-> [Day: 2016-04-19

我正试着做一些简单的事情,但不起作用

我有两个数组,它们的结构如下:

total ->
[0]-> [Day: 2016-04-19, Total: 23] 
[1]-> [Day: 2016-04-18, Total: 20]
failed ->
[0]-> [Day: 2016-04-19, Failed: 2] 
[1]-> [Day: 2016-04-18, Failed: 0]
arr ->
[0]-> [Day: 2016-04-19, Total: 23, Failed: 2]
[1]-> [Day: 2016-04-18, Total: 23, Failed: 0]
...
我试图将“Failed”键及其值添加到“total”数组中,但它不会咬人,因此输出类似于这样

total ->
[0]-> [Day: 2016-04-19, Total: 23] 
[1]-> [Day: 2016-04-18, Total: 20]
failed ->
[0]-> [Day: 2016-04-19, Failed: 2] 
[1]-> [Day: 2016-04-18, Failed: 0]
arr ->
[0]-> [Day: 2016-04-19, Total: 23, Failed: 2]
[1]-> [Day: 2016-04-18, Total: 23, Failed: 0]
...
我分配给var sql1的“总计”和分配给var sql2的“失败”,然后我尝试了各种函数和循环,如:

for (var i = 0; i < sql1.length; i++) {
    sql1[i][2] = sql2[i][1];
}

但这也不起作用

可以使用Array.prototype.concat()以这种方式连接多个数组:

var alpha = ['a', 'b', 'c'],
numeric = [1, 2, 3];

var alphaNumeric = alpha.concat(numeric);

console.log(alphaNumeric); // Result: ['a', 'b', 'c', 1, 2, 3]
然而,看看你的代码,你似乎把数组和对象弄乱了。 您的代码应该更像这样:

var total = [{
  Day: "2016-04-19",
  Total: 23
},
{
  Day: "2016-04-18",
  Total: 20
}];

var failed = [{
  Day: "2016-04-19",
  Total: 2
}, 
{
  Day: "2016-04-18",
  Total: 0
}]; 

console.log(total.concat(failed));
试试这个:

var总计=[
{日期:'2016-04-19',总计:23},
{日期:'2016-04-18',总数:20}
],
失败=[
{日期:'2016-04-19',失败:2},
{日期:'2016-04-18',失败:0}
];
//克隆总阵列
var arr=total.slice().map(函数(obj){
var result={};
结果日=目标日;
结果总计=目标总计;
返回结果;
});

对于(var i=0;i,可以使用一些循环和哈希表来获得正确的键

var数据={total:[{Day:'2016-04-19',total:23},{Day:'2016-04-18',total:20}],失败:[{Day:'2016-04-19',失败:2},{Day:'2016-04-18',失败:0},
分组=[];
Object.keys(数据).forEach(函数(k){
数据[k].forEach(函数(a){
var key={total:'total',failed:'failed'}[k];
如果(!今天[一天]){
此[a.Day]={Day:a.Day,总计:0,失败:0};
分组。推送(今天[一天]);
}
这[一天][钥匙]+=a[钥匙];
},这个);
},Object.create(null));

document.write(''+JSON.stringify(grouped,0,4)+'');
谢谢!经过一些小的重写,效果非常好,不得不将{Day:a.Day,Total:0,Failed:0};替换为{Day:a.Day,Total:'',Failed:'';删除否则会显示为前缀的0。谢谢!