var a = [];
for (var i = 0; i < 10000000; i++) {
a.push[i];
}
sum_pairs(a, 20000000)
var sum_pairs=function(ints, s){
var x, y;
var end = ints.length;
for (var i = 0; i < end; i++) {
var z = s - ints[i];
for (var j = i + 1; j < end; j++) {
if (z == ints[j]) {
x = i;
y = j;
end = j;
}
}
}
return x == undefined ? x : [ints[x], ints[y]];
}
var a = [];
for (var i = 0; i < 10000000; i++) {
a.push[i];
}
sum_pairs(a, 20000000)
var sum_pairs=function(ints, s){
var x, y;
var end = ints.length;
for (var j = 0; j < end; j++) {
for (var i = j + 1; i < end; i++) {
if (ints[j] + ints[i] == s) {
x = ints[j];
y = ints[i];
end = i;
}
}
}
return x == undefined ? x : [x, y];
}
var sum_pairs=function(ints, s){
var arr = [];
var end = ints.length;
ints.forEach(function(curr, ind) {
for (var i = ind + 1; i < end; i++) {
if (curr + ints[i] == s) {
arr[0] = [curr, ints[i]];
end = i;
}
}
});
return arr[0];
}
for (var i = ind+1; i < ints.length; i++)
После нахождения первой пары нужно проверить все пары до второго числа пары. После нахождения каждой следующей пары у которой индекс второго числа меньше, нужно смещать верхнюю границу поиска. Так вы избавитесь от массива куда засовываете результат. и значительно увеличите скорость работы.У меня есть ints.splice(i); который обрезает исходный массив сразу после того, как была найдена первая пара(или более короткая), потому как нет смысла искать пару дальше чем индекс второго числа первой пары, т.к. она будет "позже" первой найденной.
var el = document.getElementById('email');
function isEmpty(element) {
return !el.value || el.value === el.placeholder + ' last';
}