Я не могу найти ближайший номер до 0 его, давая мне неправильный результат. Можете ли вы сказать мне, как исправить это... вместо индекса, как получить значение как результат -0.001.. обеспечение скрипки и код ниже
var myNumbersToSort = [-1, 2, -3, 4, 0.3,1,-0.001];
function getClosestToZero(set) {
if(0 === set.length) return null;
var closest = Math.abs(set[0]), result = 0;
for(var i in set) {
var next = Math.abs(set[i]);
if(closest > next) {
result = i;
closest = next;
}
}
return result;
}
document.getElementById('output').innerHTML = (getClosestToZero(myNumbersToSort));
Хорошие новости!
Оно работает. единственное, что вы пропустили, что ваша функция возвращает индекс. Поскольку -0.001 является ближайшим к 0, он дает шесть (массив начинается с индекса 0)
Я просто попробовал его с максимальным значением возвращаемости, и он работал, попробуйте его с разными номерами, и вы увидите.
с var myNumbersToSort = [-1, 2,0.000001, -3, 4, 0.3,1, -0.001]
он дает 2, поскольку второй элемент равен 0,000001