我見過幾個類似的問題,關於如何生成數組中所有可能的元素組合。但是我很難弄清楚如何編寫一個只能輸出組合對的算法。任何建議將超級讚賞!Javascript - 在單個數組中生成元素的所有組合(成對)
與下面的數組開始(與N個元素):
var array = ["apple", "banana", "lemon", "mango"];
並得到以下結果:
var result = [
"apple banana"
"apple lemon"
"apple mango"
"banana lemon"
"banana mango"
"lemon mango"
];
我嘗試以下方法,但是這會導致所有可能的組合,而不是組合對。
var letters = splSentences;
var combi = [];
var temp= "";
var letLen = Math.pow(2, letters.length);
for (var i = 0; i < letLen ; i++){
temp= "";
for (var j=0;j<letters.length;j++) {
if ((i & Math.pow(2,j))){
temp += letters[j]+ " "
}
}
if (temp !== "") {
combi.push(temp);
}
}
完美地工作,感謝您的明確解釋! – dhdz