Estoy atascado en el siguiente código, obtengo todas las combinaciones posibles de capas de Photoshop. aquí, en este ejemplo, tengo un grupo con tres capas y (azul, púrpura, dorado). Estoy tomando estas capas como matriz y llamando a esta función de combinación.
El problema es que cada vez que se presiona una nueva combinación en la matriz ""allCombination", el elemento anterior de la matriz de todas las combinaciones también se convierte en un nuevo elemento. En resumen, si hubiera presionado [blue,purple] en allCombination[0] pero cuando la segunda combinación de matriz como [azul,oro] en allCombination[1] La matriz completa "allCombination" se convierte en [blue,gold],[blue,gold]
var allCombinations = []; var result = []; result.length = 2; //n=2 function combine(input, len, start) { if(len === 0) { allCombinations.push(result); //process here the result $.writeln (allCombinations) return; } for (var i = start; i <= input.length - len; i++) { result[result.length - len] = input[i]; combine(input, len-1, i+1 ); } } var array = ["Blue", "purple", "gold"]; combine( array, result.length, 0); alert(allCombinations);//////////////////////////////////
El código anterior da el siguiente resultado
Blue,purple Blue,gold,Blue,gold purple,gold,purple,gold,purple,gold