2013-10-11 71 views

回答

0

通過這段代碼我能夠得到所有組合。

function getCombinations(chars) { 
    var result = []; 
    var f = function (prefix, chars) { 
     for (var i = 0; i < chars.length; i++) { 
      if (prefix == '') result.push(prefix + chars[i]); 
      else result.push(parseInt(prefix) + parseInt(chars[i])); 
      if (prefix == '') f((prefix + chars[i]), chars.slice(i + 1)); 
      else f((parseInt(prefix) + parseInt(chars[i])), chars.slice(i + 1)); 
     } 
    } 
    f('', chars); 
    return result; 
} 
var combinations = getCombinations(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]); 
console.log(combinations); 
alert(combinations); 

這也可能有助於其他人。

0
var integers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]; 
var table = []; 

for (var y = 0; y < integers.length; y++) { 
    for (var x = 0; x < integers.length; x++) { 
     table.push(x + y); 
    } 
} 

table現在包含的新的整數到20(10 + 10)的陣列,在這種情況下,從2(1 + 1)。

+1

這段代碼會給出很多重複的數字。 –

+0

@Mike當然是的。 1 + 2與2 + 1相同。你沒有提到任何你想要的結果。 – Broxzier

1
var combinations[]; 
for (var i = 0; i < yourIntArray.length; i++) { 
    for (var j = 0; j < yourIntArray.length; j++) { 
     combinations.push(parseInt(yourIntArray[i]) + parseInt(yourIntArray[j])); 
    } 
} 

如果您想檢查唯一性,您可能需要修改內部循環。