我有一系列元素数组,如下所示:
var result = [
// outer array
[
// inner first array
{name: 'A', value: 111},
{name: 'B', value: 222},
{name: 'C', value: 333},
...
],
[
// inner subsequent arrays #2
{name: 'D', value: 55},
{name: 'E', value: 99},
...
],
// inner subsequent arrays #3
{name: 'F', value: 1000},
...
],
...
...
]
我想浏览每个元素(A-F
)但仅针对第一个数组(A-C
)的每个元素。
像这样:
AA,AB,AC,AD,AE,AF
BB,BC,BD,BE,BF
CC,CD,CE,CF
编辑:我不知道任何数组的长度,所以我不能使用任何常量。
此外,它不仅仅是2个数组(上面更新的例子)。
答案 0 :(得分:1)
// Reduce all the arrays into a single array
var result = result.reduce(function(result, current) {
return result.concat(current);
}, []);
// Iterate till the end of the first array
for (var i = 0; i < result[0].length; i += 1) {
// Start from the current i and iterate till the end
for(var j = i; j < result.length; j += 1) {
console.log(result[i].name + result[j].name);
}
}
<强>输出强>
AA
AB
AC
AD
AE
AF
BB
BC
BD
BE
BF
CC
CD
CE
CF
...
...
答案 1 :(得分:1)
@ thefourtheye的解决方案非常聪明,但我认为它缺少你问题的主要要求。以下是您可以解决的问题:
// Reduce all the arrays into a single array
var firstArray = result[0],
allItems = result.reduce(function(result, current) {
return result.concat(current);
}, []), i, j;
// Iterate till the end of the array
for (i = 0; i < firstArray.length; i += 1) {
// Start from the current i and iterate till the end
for(j = i; j < allItems.length; j += 1) {
console.log(firstArray[i].name + allItems[j].name);
}
}