0

たとえば、私は配列を持っています

["red", "green", "blue", "purple"]

この配列には、任意の数のエントリを含めることができます。この配列を使用して、可能な組み合わせのリストを作成したいが、組み合わせを複製したくない

たとえば、上記の配列は次のようになります。

red,green,blue,purple
red,green,purple,blue
red,blue,green,purple
red,blue,purple,green
red,purple,blue,green
red,purple,green,blue

green,red,blue,purple
green,red,purple,blue
green,blue,red,purple
green,blue,purple,red
green,purple,blue,red
green,purple,red,blue

blue,red,green,purple
blue,red,purple,green
blue,green,red,purple
blue,green,purple,red
blue,purple,green,red
blue,purple,red,green

purple,red,green,blue
purple,red,purple,blue
purple,green,red,blue
purple,green,blue,red
purple,blue,green,red
purple,blue,red,green

私は再帰が初めてで、再帰でこれを達成する方法を完全に把握していません。

4

2 に答える 2

1
function combs(arr,str){
  var arrCopy,popped;
  for(var i =0; i<arr.length; i++){
     arrCopy = arr.splice(0);
     popped = arrCopy.splice(i,1)
     combs(arrCopy,popped);
  }
  if(arr.length === 0){
    console.log(str);
  }
}

これにより、すべてのオプションがコンソールに出力されます。それらすべてをなんらかの形式で返す必要がある場合は、基本ケースで出力する代わりに返すことができ、必要に応じて再帰呼び出しの結果を連結することができます。

于 2013-03-27T20:42:43.070 に答える
0

これで始めることができます:

http://rosettacode.org/wiki/Permutations#JavaScript

HTML 要素に出力するように実装されていますが、ニーズに合わせて簡単に調整できるはずです。

于 2013-03-27T20:44:17.583 に答える