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

如何从变量a显示二维数组?如何获取数组元素的排列数组?

[ 
    [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-d阵列你在寻找排列? – 2012-04-02 04:28:22

+0

是............ – zjm1126 2012-04-02 04:29:33

+0

请详细解释您想实现的目标 – ajax333221 2012-04-02 04:58:24

回答

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]? – 2012-04-02 06:07:44