2011-11-03 80 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