如何将两个数组组合为笛卡尔积?

问题描述 投票:6回答:7

我有

array1 = [1,2,3,4,5];
array2 = ["one","two","three","four","five"];

我想获得array3,其中array1的所有元素都带有array2的第一个(和其他)元素,等等。>

例如:

array3 = ["one 1", "two 1", "three 1", "four 1", "five 1", "one 2", "two 2", "three 2", "four 2", "five 2"...]

我知道我需要使用for循环,但是我不知道该怎么做。

我有array1 = [1,2,3,4,5]; array2 = [“一个”,“两个”,“三个”,“四个”,“五个”];我想获得array3,其中array1的所有元素都与array2的第一个(和其他)元素等,例如:array3 = ...

javascript arrays loops cartesian-product
7个回答
11
投票

您可以使用两个for循环:


12
投票

您可以使用Array.prototype.forEach()进行数组的迭代。


6
投票

使用var array1 = [1, 2, 3, 4, 5], array2 = ["one", "two", "three", "four", "five"], result = []; array1.forEach(function (a) { array2.forEach(function (b) { result.push(b + ' ' + a); }); }); document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');reducemap的另一种方法


5
投票

仍然有带循环的选项:


3
投票

var array2 = [1,2,3,4,5], array1 = ["one","two","three","four","five"], m = []; for(var a1 in array1){ for(var a2 in array2){ m.push( array1[a1]+ array2[a2] ); } } console.log(m); array1.length相等时可以使用此方法。


0
投票

尝试(JS)


0
投票

由于这不是语言的内置功能,因此这是一个简单的功能,其签名与内置的function myFunction(){ var F = [1, 2, 3, 4,5]; var S = ["one", "two", "three", "four", "five"]; var Result = []; var k=0; for (var i = 0; i < F.length; i++) { for (var j = 0; j < S.length; j++) { Result[k++] = S[j] + " " + F[i]; } } console.log(Result); } 类似:

© www.soinside.com 2019 - 2024. All rights reserved.