2个阵列的笛卡尔积

Gre*_*reg 5 javascript jquery

我有2个阵列,我想要一个笛卡尔积.举个例子:

客户数组:

[10,A]
[11,B]
Run Code Online (Sandbox Code Playgroud)

债务人数组:

[88,W]
[99,X]
Run Code Online (Sandbox Code Playgroud)

我想生成一个新的customerDebtor数组:

[10,A,88,W]
[10,A,99,X]
[11,B,88,W]
[11,B,99,X]
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此代码:

for (var i = 0; i < customerArray.length; i++) {
    for (var l = 0; l < debtorArray.length; l++) {
        $.each(customerArray[i], function (ndx, val) {
            //???? push values into customerDebtorMatrix array
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

She*_*tJS 3

为此,您不需要 jquery:

var customerArray = [[10,'A'],[11,'B']];
var debtorArray = [[88,'W'],[99,'X']];

var customerDebtorMatrix = [];
for (var i = 0; i < customerArray.length; i++) {
    for (var l = 0; l < debtorArray.length; l++) {
        customerDebtorMatrix.push(customerArray[i].concat(debtorArray[l]));
    }
}
Run Code Online (Sandbox Code Playgroud)

customerDebtorMatrix

[ [ 10, 'A', 88, 'W' ],
  [ 10, 'A', 99, 'X' ],
  [ 11, 'B', 88, 'W' ],
  [ 11, 'B', 99, 'X' ] ]
Run Code Online (Sandbox Code Playgroud)

  • @Greg:为什么你想用 jQuery 来做呢?您可以使用“$.each”代替“for”循环。但对于任何相当现代的浏览器来说,首先还有“Array.prototype.forEach”…… (2认同)