2011-11-03 55 views
0

我想查找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); 
     } 
    } 
} 

有没有更合适的方法来做到这一点?

+0

该数组是否是唯一的? – Raynos

+0

你不需要j!= i,每当你达到它时,它都会评价为false。任何时候j == i,j> i将评估为false,并且第二个条件将与'if'语句的其余部分一起被跳过。虽然,您可以只使用jodaka的建议并完全消除if语句 –

+0

您并未比较数组atm的值。如果你想比较这个值,使用'places [i]'和'places [j]'而不是'i'和'j'。 –

回答

2

您可以开始ji + 1并消除您的if条件。

+0

哦,是的,好点! – Richard

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