sirven relacionales que positivos positivo para operadores numeros numero negativos negativo los entera ejemplos convertir comparacion aritmeticos javascript jquery math modulo negative-number

javascript - que - operadores relacionales



¿Cómo calcular el módulo de enteros negativos en JavaScript? (2)

La mayoría de los idiomas que heredan de C devolverán un resultado negativo si el primer operando de una operación de módulo es negativo y el segundo es positivo. No estoy seguro de por qué se tomó esta decisión originalmente. Probablemente lo más cercano a lo que los procesadores en ese momento hacían en ensamblaje. En cualquier caso, desde entonces la respuesta a "por qué" es más probable "porque eso es lo que esperan los programadores que saben C".

La referencia MDC contiene un puntero a una propuesta para introducir un operador de mod adecuado . Pero incluso eso mantendría al operador % existente (al que llaman "resto" para distinguirlos mejor entre ellos) e introducir una nueva notación de la palabra infijo a mod b . La propuesta data de 2011, y no conozco desarrollos más recientes en esta dirección.

Estoy intentando iterar sobre una matriz de objetos jQuery, incrementando o disminuyendo en 1. Entonces, para la parte de disminución, uso este código:

var splitted_id = currentDiv.attr(''id'').split(''_''); var indexOfDivToGo = parseInt(splitted_id[1]); indexOfDivToGo = (indexOfDivToGo-1) % allDivs.length; var divToGo = allDivs[indexOfDivToGo];

Así que tengo 4 elementos con ID''s:

div_0 div_1 div_2 div_3

Esperaba que se repitiera como 3 - 2 - 1 - 0 - 3 - 2 - etc.

pero devuelve -1 después del cero, por lo tanto está bloqueado. Así se itera como:

3 - 2 - 1 - 0 - -1 - atascado

Sé que probablemente pueda arreglarlo cambiando la segunda línea de mi código a

indexOfDivToGo = (indexOfDivToGo-1 + allDivs.length) % allDivs.length;

pero me pregunto por qué JavaScript no está calculando mods negativos. Tal vez esto ayude a otro codificador también.


Puedes probar esto: p-

Number.prototype.mod = function(n) { return ((this % n) + n) % n; }

Mira this