Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
结合二维数组的JavaScript_Javascript_Jquery_Arrays - Fatal编程技术网

结合二维数组的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精神上