结合二维数组的JavaScript
假设我有两个数组:结合二维数组的JavaScript,javascript,jquery,arrays,Javascript,Jquery,Arrays,假设我有两个数组: var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]]; var b = [[1, 20], [3, 20], [4, 20]]; 我想将这两个元素组合成一个新数组: var c = [[1, 10, 20], [2, 10], [3, 10, 20], [4, 10, 20], [5, 10]]; 做这件事最好的方法是什么。我会在一秒钟内更新我的问题,用我尝试过的方法 var c = []; for(var i = 0
var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]];
var b = [[1, 20], [3, 20], [4, 20]];
我想将这两个元素组合成一个新数组:
var c = [[1, 10, 20], [2, 10], [3, 10, 20], [4, 10, 20], [5, 10]];
做这件事最好的方法是什么。我会在一秒钟内更新我的问题,用我尝试过的方法
var c = [];
for(var i = 0; i < a.length; i++) {
for(var j = 0; j < b.length; j++) {
if(a[i][0] == b[j][0]) {
// Push b value into a
a[i][0].push(b[j][1]);
} else {
// Don't do anything...
}
}
}
c = a; // Useless code here but just wanted to return c
return c;
var c=[];
对于(变量i=0;i
为什么不使用普通数组?它们可以是稀疏的
var a = [10, 10, 10, 10, 10];
var b = [20, , 20, 20];
现在将它们放入一个数组中:
var c = new Array(Math.max(a.length, b.length));
for (var i=0; i<c.length; i++)
if (i in a && i in b)
c[i] = [a[i], b[i]];
else if (i in a)
c[i] = [a[i]];
else if (i in b)
c[i] = [b[i]];
var c=新数组(Math.max(a.length,b.length));
对于(var i=0;i为什么不使用普通数组?它们可以是稀疏的
var a = [10, 10, 10, 10, 10];
var b = [20, , 20, 20];
现在将它们放入一个数组中:
var c = new Array(Math.max(a.length, b.length));
for (var i=0; i<c.length; i++)
if (i in a && i in b)
c[i] = [a[i], b[i]];
else if (i in a)
c[i] = [a[i]];
else if (i in b)
c[i] = [b[i]];
var c=新数组(Math.max(a.length,b.length));
对于(var i=0;i为什么不使用普通数组?它们可以是稀疏的
var a = [10, 10, 10, 10, 10];
var b = [20, , 20, 20];
现在将它们放入一个数组中:
var c = new Array(Math.max(a.length, b.length));
for (var i=0; i<c.length; i++)
if (i in a && i in b)
c[i] = [a[i], b[i]];
else if (i in a)
c[i] = [a[i]];
else if (i in b)
c[i] = [b[i]];
var c=新数组(Math.max(a.length,b.length));
对于(var i=0;i为什么不使用普通数组?它们可以是稀疏的
var a = [10, 10, 10, 10, 10];
var b = [20, , 20, 20];
现在将它们放入一个数组中:
var c = new Array(Math.max(a.length, b.length));
for (var i=0; i<c.length; i++)
if (i in a && i in b)
c[i] = [a[i], b[i]];
else if (i in a)
c[i] = [a[i]];
else if (i in b)
c[i] = [b[i]];
var c=新数组(Math.max(a.length,b.length));
对于(var i=0;i
var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]];
var b = [[1, 20], [3, 20], [4, 20]];
var c = [];
// Loop over a
for (var n = 0; n < a.length; n++) {
// Create copy of a's value
var subA = a[n].slice(0);
// Loop over b
for (var i = 0; i < b.length; i++) {
var subB = b[i];
// Check if a contains b
if (subA.indexOf(subB[0]) === 0) {
// Add b to new a value
subA.push(subB[1]);
}
}
// Add new value to c
c.push(subA);
}
console.log(a)
console.log(c);
var a=[[1,10]、[2,10]、[3,10]、[4,10]、[5,10];
VarB=[[1,20],[3,20],[4,20];
var c=[];
//绕一圈
对于(var n=0;n
编辑1:为循环更新
编辑2:如果第一项等于第一项
编辑3:切片a以保留原始值
var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]];
var b = [[1, 20], [3, 20], [4, 20]];
var c = [];
// Loop over a
for (var n = 0; n < a.length; n++) {
// Create copy of a's value
var subA = a[n].slice(0);
// Loop over b
for (var i = 0; i < b.length; i++) {
var subB = b[i];
// Check if a contains b
if (subA.indexOf(subB[0]) === 0) {
// Add b to new a value
subA.push(subB[1]);
}
}
// Add new value to c
c.push(subA);
}
console.log(a)
console.log(c);
var a=[[1,10]、[2,10]、[3,10]、[4,10]、[5,10];
VarB=[[1,20],[3,20],[4,20];
var c=[];
//绕一圈
对于(var n=0;n
编辑1:为循环更新
编辑2:如果第一项等于第一项
编辑3:切片a以保留原始值
var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]];
var b = [[1, 20], [3, 20], [4, 20]];
var c = [];
// Loop over a
for (var n = 0; n < a.length; n++) {
// Create copy of a's value
var subA = a[n].slice(0);
// Loop over b
for (var i = 0; i < b.length; i++) {
var subB = b[i];
// Check if a contains b
if (subA.indexOf(subB[0]) === 0) {
// Add b to new a value
subA.push(subB[1]);
}
}
// Add new value to c
c.push(subA);
}
console.log(a)
console.log(c);
var a=[[1,10]、[2,10]、[3,10]、[4,10]、[5,10];
VarB=[[1,20],[3,20],[4,20];
var c=[];
//绕一圈
对于(var n=0;n
编辑1:为循环更新
编辑2:如果第一项等于第一项
编辑3:切片a以保留原始值
var a = [[1, 10], [2, 10], [3, 10], [4, 10], [5, 10]];
var b = [[1, 20], [3, 20], [4, 20]];
var c = [];
// Loop over a
for (var n = 0; n < a.length; n++) {
// Create copy of a's value
var subA = a[n].slice(0);
// Loop over b
for (var i = 0; i < b.length; i++) {
var subB = b[i];
// Check if a contains b
if (subA.indexOf(subB[0]) === 0) {
// Add b to new a value
subA.push(subB[1]);
}
}
// Add new value to c
c.push(subA);
}
console.log(a)
console.log(c);
var a=[[1,10]、[2,10]、[3,10]、[4,10]、[5,10];
VarB=[[1,20],[3,20],[4,20];
var c=[];
//绕一圈
对于(var n=0;n
编辑1:为循环更新
编辑2:如果第一项等于第一项
编辑3:切片a以保留原始值您可以在第一个数组上使用map,在第二个数组中循环,比较第一个数字,然后将第一个数组与它尚未包含的数字相加?不要给迭代器任意命名,从而使您的生活更艰难。使用ai、bi、ci而不是i、j,…以避免混淆锡安(我开始给他们起的名字和你一样,现在我不得不强迫自己克服这个坏习惯)你可以在第一个数组上使用map,循环第二个数组中的每个数组,比较第一个数组中的数字,然后将第一个数组中尚未包含的数字附加到第一个数组中。不要给迭代器任意命名,这会使你的生活更艰难。使用ai、bi、ci而不是i、j……来避免混淆(我开始像你一样给他们起名字,现在我不得不强迫自己克服这个坏习惯)你可以在第一个数组上使用map,循环第二个数组中的每个数组,比较第一个数组中的数字,然后将第一个数组中尚未包含的数字附加到第一个数组中。不要给迭代器任意命名,这会使你的生活更艰难。使用ai、bi、ci而不是i、j……来避免混淆(我开始像你一样给他们起名字,现在我不得不强迫自己克服这个坏习惯)你可以在第一个数组上使用map,循环第二个数组中的每个数组,比较第一个数组中的数字,然后将第一个数组中尚未包含的数字附加到第一个数组中。不要给迭代器任意命名,这会使你的生活更艰难。使用ai、bi、ci而不是i、j……来避免混淆(我开始像你一样给他们起名字,现在我不得不强迫自己克服这个坏习惯)我上面的例子是从我实际做的事情简化而来的。在我的例子中,每个数组实际上是一个日期和值的二维数组。我上面的例子是从我实际做的事情简化而来的。在我的例子中,每个数组实际上是一个日期和值的二维数组。我上面的例子是从我实际做的事情简化而来的。在我的例子中,每个数组都是act精神上