2012-04-02 14 views
-1
var a = [1,2,3]//may be a is [1,2,3,4,5,6...] 

変数aから2次元配列を表示するにはどうすればよいですか?配列要素の並べ替えの配列を取得する方法は?

[ 
    [1,2,3], 
    [2,1,3], 
    [1,3,2], 
    [3,2,1] 
] 

これは私のコードです:あなたは次のことを試すことができ

var result = []; 
for(i=0,i<Math.pow(a.length-1,2);i++){ 
    var tmp = []; 
    tmp.push(...) 

    result.push(tmp) 
}; 

console.log(result) 
+2

のパーマを含む2次元配列を返しますあなたは順列を得るために探していますか? –

+0

はい............ – zjm1126

+0

達成したいことをさらに詳細に説明してください。 – ajax333221

答えて

4

引数として配列を受け取り、Array.lengthと

var permArr = [], 
usedChars = []; 

function permute(input) { 
    var i, ch; 
    for (i = 0; i < input.length; i++) { 
     ch = input.splice(i, 1)[0]; 
     usedChars.push(ch); 
     if (input.length == 0) { 
      permArr.push(usedChars.slice()); 
     } 
     permute(input); 
     input.splice(i, 0, ch); 
     usedChars.pop(); 
    } 
    return permArr 
}; 


console.log(permute([1, 2, 3]));​ 
+1

値が重複する場合は、a = [1,2,2,3]ですか? –

関連する問題