-1

我有 10 个元素的整数数组。我想要通过添加两个元素来获得所有组合。

4

3 回答 3

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]));
    }
}

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

于 2013-10-11T17:46:49.820 回答
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现在包含一个新整数数组,在本例中为 2 (1 + 1) 到 20 (10 + 10)。

于 2013-10-11T17:46:26.460 回答
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);

这也可能对其他人有所帮助。

于 2013-10-11T17:39:39.070 回答