El método más eficiente para verificar el rango de números dentro del número sin duplicados
Dado un númeron
, un número mínimomin
, un número máximomax
, cuál es el método más eficiente para determinar
Númeron
está o no está dentro del rango, incluido,min
- max
Númeron
contiene o no números duplicados
Eficiencia significa aquí que el método o conjunto de métodos requiere la menor cantidad de recursos computacionales y devuelvetrue
ofalse
en la menor cantidad de tiempo
Contexto: Condición enif
Dentro de unfor
bucle que podría requerir de miles a cientos de miles de iteraciones para devolver un resultado; donde se requieren milisegundos para regresartrue
ofalse
en cuanto aNumber
la verificación podría afectar el rendimiento
AProfiles
panel enDevTools
en una colección de71,3307
artículos iterados,RegExp
a continuación se enumeró como utilizando27.2ms
del total1097.3ms
para completar el bucle. En una colección de836,7628
artículos iteradosRegExp
abajo usado193.5ms
dentro del total de11285.3ms
.
Requisito: método más eficiente para volverBoolean
true
ofalse
dados los parámetros anteriores, dentro de la menor cantidad de tiempo.
Nota: la solución no tiene que limitarse aRegExp
; se utiliza a continuación como el patrón devolvió los resultados esperados
Actualjs
utilizandoRegExp
re
, RegExp.protype.test()
var min = 2
, max = 7
, re = new RegExp("[" + min + "-" + max + "](.)(?!=\1)", "g")
, arr = [81, 35, 22, 45, 49];
for (var i = 0; i < arr.length; i++) {
console.log(re.test(arr[i]), i, arr[i])
/*
false 0 81
true 1 35
false 2 22
true 3 45
false 4 49
*/
}