找到数组的所有*唯一组合*

时间:2011-11-03 12:46:34

标签: javascript arrays permutation

我想在JavaScript中找到数组元素位置的所有唯一组合

这是我的阵列:

var places = ['x', 'y', 'z'];

我想找到以下组合:[0,1],[0,2],[1,2]。

目前我有功能但略显笨拙:

for (var i = 0; i < places.length; i++) {
    for (var j = 0; j < places.length; j++) {
        if ((j > i) && (j != i)) { 
            console.log(i, j);
        }
    }
}

有更简洁的方法吗?

2 个答案:

答案 0 :(得分:4)

// from codecademy.com

var people = ["Alice", "Bob", "Carol", "Dave", "Ed"];
var n = people.length;
var i, j;

for(i = 0; i < n; i++){
    for(j = i + 1; j < n; j++){
        console.log(people[i] + ", " +  people[j]);
    }
}

// output
Alice, Bob
Alice, Carol
Alice, Dave
Alice, Ed
Bob, Carol
Bob, Dave
Bob, Ed
Carol, Dave
Carol, Ed
Dave, Ed

答案 1 :(得分:2)

您可以j开始i + 1并消除if条件。