function twoSum(numbers, target) {
var result = [];
numbers.forEach(function(value, index) {
return numbers.forEach(function(value2, index2) {
if (value + value2 === target) {
result.push(index, index2);
return result;
}
})
})
return result;
}
twoSum([1, 2, 3], 4);
//Output - [ 0, 2, 1, 1, 2, 0 ]
Привет. Я работаю над определенной проблемой кодовых войн и, похоже, неправильно понимаю использование return
для функций обратного вызова. В этой конкретной задаче я просто хочу найти первые две суммы чисел, которые равны цели, и pu sh этих значений индекса в результате. Я не хочу продолжать итерацию своей функции после этого - то есть я хочу только первую найденную пару. Мой текущий вывод дает мне все значения индекса для целевой суммы. Не только первые 2. Кажется, я неправильно использую свои команды возврата. В настоящее время я считаю, что return result
возвращает значение для моего вложенного обратного вызова параметров (value2, index2)
. Этот результат затем возвращается к моей внешней функции (value,index)
. Почему мой l oop не прекращается после этого return
?