Данная функция должна принимать любой массив с любым числом целых чисел.вычитание двух целых чисел, имеющих разные индексы, но одинаковые значения
После этого следует вычесть два целых числа друг от друга рядом с целыми числами, которые имеют тот же самый индекс.
var ArrayFirst = [4, 34, 6, 1,5];
var ArraySecond = [4,34,6,1,4];
function Find(Arg) {
var ResultArray;
var SecondArray = [];
for (var i = 0; i < Arg.length; i++) {
var FirsArray;
for (var j = 0; j < Arg.length; j++) {
if (Arg.indexOf(Arg[i]) != Arg.indexOf(Arg[j])) {
console.log(Arg.indexOf(Arg[i]) + 'AND' + Arg.indexOf(Arg[j]));
FirstArray = Arg[i] - Arg[j];
console.log(FirstArray);
if (FirstArray >= 0) {
SecondArray.push(FirstArray);
}
}
}
//console.log(SecondArray);
}
ResultArray = Math.min.apply(this, SecondArray);
console.log(ResultArray);
return ResultArray;
}
Так После отладки я обнаружил, что функция Найти работы с ArrayFirst, но не с ArraySecond
Вопрос: Почему функция не работает, если массив имеет два целых числа с одинаковым значением?
ОБНОВЛЕНО
Извините, ребята, что я не гнал больше деталей
Задача: Создать функцию, которая в результате даст сумму вычитания двух чисел из массива, сумма не может быть вычитание двух целые числа, которые имеют одинаковый индекс, сумма не может быть ниже 0, то ближайшая к 0 будет правильным результатом.
Пример: [4,6,3,56,4] 4-6,4-3 ... 4-4, затем 6-4,6-3 ... 6-4 затем и т.д. So результат будет 0, потому что 4-4 сумма 0
Некоторые советы
Во-первых, я думал, может быть, это что-то делать с работой на массив, но затем я использовал применить и призовет аргументы
if (Array.prototype.indexOf.apply(arguments[0],[arguments[0][i]]) !== Array.prototype.indexOf.apply(arguments[0],[arguments[0][j]])) {
FirstArray = arguments[0][i] - arguments[0][j];
if (FirstArray >= 0) {
SecondArray.push(FirstArray);
}
}
}
Но все еще не работает, я пробовал решение с аргументами, тоже не работает.
Попробуйте использовать '.map()' он был разработан для этой цели – Downgoat
то, что ожидаемые результаты? Не совсем понятное описание. Также почему вы определяете FirstArray как массив, а затем меняете его тип на целое? – charlietfl
Когда два целых числа в массиве имеют одинаковое значение, их вычитание приведет к '0', и это будет вдавлено в' SecondArray'. Наименьшее значение, которое вы допустили в этом массиве, равно '0', поэтому' ResultArray' в конечном итоге будет '0'. Ожидаете ли вы другого значения? – HankScorpio