У меня есть n массивов, структурированных как
[{val_1: 2}, {val_1: 3}];
[{val_2: 2}];
[{val_3: 1}];
et c.
Я хочу создать один массив, структурированный как
[{val_1: 2, val_2: 2, val_3: 1}, {val_1: 3, val_2: 2, val_3: 1}]
в который сравнивает все массивы и производит все возможные выходные данные. В приведенном ниже коде у меня есть 3 массива. Один с 4 значениями, 2 значениями и 3 значениями. Я хочу, чтобы он возвращал 24 различных массива, показывающих все возможные комбинации.
var val_1 = 3
var val_2 = 2
var val_3 = 1
var total_val = 3;
var useable = 50;
var array_1 = new Array();
var array_2 = new Array();
var array_3 = new Array();
var array_1_c = new Array();
var array_2_c = new Array();
var array_3_c = new Array();
for(val_1; val_1 <= total_val && val_1 <= useable; val_1+=1){
array_1 = [{val_1}];
array_1.map(test =>{
return{val_1}
}).forEach(test => array_1_c.push(test));
};
var val_1 = 2
for(val_1; val_1 >= 0; val_1-=1){
array_1 = [{val_1}];
array_1.map(test =>{
return{val_1}
}).forEach(test => array_1_c.push(test));
};
for(val_2; val_2 <= total_val && val_2 <= useable; val_2+=1){
array_2 = [{val_2}];
array_2.map(test =>{
return{val_2}
}).forEach(test => array_2_c.push(test));
};
for(val_3; val_3 <= total_val && val_3 <= useable; val_3+=1){
array_3 = [{val_3}];
array_3.map(test =>{
return{val_3}
}).forEach(test => array_3_c.push(test));
}; console.log(array_1_c);console.log(array_2_c);console.log(array_3_c);
как бы что-то подобное было достигнуто? Кажется, что перестановочная функция - путь к go, но я не могу найти способ вывести каждую комбинацию. Если создается несколько миллионов комбинаций, я должен go другой маршрут, чем при использовании массива объектов.
Спасибо!