2013-10-11 52 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])); 
    } 
} 

如果您想检查唯一性,您可能需要修改内部循环。