fro*_*ock 5 javascript arrays loops cartesian-product
我有
array1 = [1,2,3,4,5];
array2 = ["one","two","three","four","five"];
Run Code Online (Sandbox Code Playgroud)
我希望得到第一个(和其他)元素等array3所有元素的位置.array1array2
例如:
array3 = ["one 1", "two 1", "three 1", "four 1", "five 1", "one 2", "two 2", "three 2", "four 2", "five 2"...]
Run Code Online (Sandbox Code Playgroud)
我知道我需要使用for循环,但我不知道该怎么做.
Nin*_*olz 12
您可以使用Array.prototype.forEach()数组上的迭代.
该
forEach()方法每个数组元素执行一次提供的函数.
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>');Run Code Online (Sandbox Code Playgroud)
mad*_*ox2 11
您可以使用两个for循环:
var array1 = [1,2,3,4,5];
var array2 = ["one","two","three","four","five"];
var array3 = [];
for (var i = 0; i < array1.length; i++) {
for (var j = 0; j < array2.length; j++) {
array3.push(array2[j] + ' ' + array1[i]);
}
}
console.log(array3);
Run Code Online (Sandbox Code Playgroud)
基于@Nina Scholz的片段
var array1 = [1, 2, 3, 4, 5],
array2 = ["one", "two", "three", "four", "five"];
var result = array1.reduce(function (acc, cur) {
return acc.concat(array2.map(function (name) {
return name + ' ' + cur;
}));
},[]);
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');Run Code Online (Sandbox Code Playgroud)
循环仍然有选项:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
956 次 |
| 最近记录: |