Я в данный момент застрял в этой проблеме,
предположим, что существует массив arr4 (длина не фиксирована).Мне нужно найти все комбинации его элемента.
Ожидаемый результат:
4-16D-5d
4-16D-5e
4A-16D-5d
4A-16D-5e
4B-16D-5d
4B-16D-5e
4-15D-5d
4-15D-5e
4A-15D-5d
4A-15D-5e
4B-15D-5d
4B-15D-5e
Что я пробовал:
arr4=[['4','4A','4B'],['16D','15D'],['5d','5e']]; //may contains more elements
alert("arr4 "+arr4);
for(var k=0;k<arr4.length;k++){
alert("k "+k);
arr_v=arr4[k]
alert("arrv"+arr_v);
alert ("arrv lengt"+arr_v.length);
for(var z=0;z<arr_v.length;z++){
m=1;
while(m<arr4.length){
var test=arr4[m];
for(var n=0;n<test.length;n++)
alert(arr_v[z]+"<TEST>"+test[n]);
}
m++;
}
}
Я вроде нашел решение:
function product() {
return Array.prototype.reduce.call(arguments, function(as, bs) {
return [a.concat(b) for each (a in as) for each (b in bs)]
}, [[]]);
}
НО
arr4=[['4','4A','4B'],['16D','15D'],['5d','5e']];
alert(product(['4','4A','4B'],['16D','15D'],['5d','5e']);
Выше работает, но не работает следующее:
arr4=[['4','4A','4B'],['16D','15D'],['5d','5e']];
alert(product(arr4);
Кто-нибудь, пожалуйста, предложите решение
редактировать: решение здесь