【发布时间】:2016-01-28 05:57:09
【问题描述】:
我完成了一个低效但有效的算法来计算数组(arr1) 中的哪一对数字加起来就是总和。我面临这两个问题:
(1) 它给了我“每一对”(例如 1+11 以及总和为 12 时的 11+1),
与
(2) 我不希望它给自己添加一个数字(例如findArrSum([1, 3, 4, 8, 9, 11, 6, ], 12)我不希望它返回 (6+6))。我可以通过我的 if 语句忽略 6,但在这种情况下,它也会忽略解决方案(本例中为 6+6 findArrSum([1, 3, 4, 8, 9, 11, 6, 6], 12)。
function findArrSum(arr1, sum) {
var i = 0;
for (i in arr1) {
arr1.map(function(num) {
var answerSum = (num + arr1[i]);
if (answerSum == sum && num != arr1[i]) {
console.log(num +"+" +arr1[i] +"=" +sum);
}
});
}
}
console.log('Enter an array and a sum that you want a pair to add to: ')
【问题讨论】:
-
一个简单的小提琴 jsfiddle.net 会有所帮助
-
arr1.map(function(num, b) {,然后num != arr1[i]变成(num != arr1[i] && i!=b) -
进行编辑?我很困惑。 .
-
所以我将其切换为 for (i = 0; i
标签: javascript arrays algorithm