Número Mais Próximo //Repositório JavaScript
Descrição
Dado um array numérico ordenado e um número "X", retorna o índice do número mais próximo de "X".
Criado: 2008.03.14
Criado: 2008.03.14
Código (Download)
//+ Carlos R. L. Rodrigues
//@ http://jsfromhell.com/array/nearest-number [rev. #0]
function getNearestNumber(a, n){
if((l = a.length) < 2)
return l - 1;
for(var l, p = Math.abs(a[--l] - n); l--;)
if(p < (p = Math.abs(a[l] - n)))
break;
return l + 1;
}
Exemplo (Exemplo)
<script type="text/javascript">
//<![CDATA[
var array = [0, -3, 10, -10, 15];
//Must be sorted from the smallest to the highest
array = array.sort(function(a, b){
return a - b;
});
document.write(
"Array = [", array, "]<br />Indexes of the nearest numbers to:<br />",
"5 = ", getNearestNumber(array, 5), "<br />",
"9 = ", getNearestNumber(array, 9), "<br />",
"15 = ", getNearestNumber(array, 15), "<br />",
"-15 = ", getNearestNumber(array, -15), "<br />",
"-2 = ", getNearestNumber(array, -2)
);
//]]>
</script>
Ajuda
- getNearestNumber(a: Array, n: Number): Integer
-
Procura o número mais próximo do argumento "n" na array e retorna seu índice, ou -1 sempre que a array estiver vazia.
- a
- array de números *ordenada* do menor para o maior
- n
- número de referência
Ranque (Votos: 57)
2.30