Cuente el número de valores en la matriz entre dos valores de entrada

Como sugiere el título, quiero crear una función que cuente el número de valores en mi matriz entre dos valores que el usuario ha ingresado. Entonces, por ejemplo, si la matriz era [1, 4, 6, 7, 8, 6] y el usuario ingresó 5 como su primer valor y 7 como su segundo valor, serían recibidos con una alerta que decía

“número total de valores = 3”.

Puede crear una solución extremadamente limpia para este problema utilizando la segunda propiedad de Array#filter (que establece el enlace que se le asigna a la callback que elija):

 var array = [1, 4, 6, 7, 8, 6] function inRange (x) { return this[0] <= x && x <= this[1] } var result = array.filter(inRange, [5, 7]).length console.log('Total number of values:', result) 

Todo lo que necesitas es un simple para bucle.

 var total = 0; var num1 = 5; var num2 = 7; var array = [1,4,6,7,8,6]; for(var a = 0; a < array.length; a++) { if(array[a] >= num1 && array[a] <= num2) { total++; } } alert("Total numbers of values = " + total); 

Esto recorrerá la matriz, detectará números dentro del rango, registrará un valor y lo emitirá en una alerta.

Puede usar Array.prototype.filter() , RegExp.prototype.test() con el constructor RegExp con la clase from-to , donde from es 5 , to is 7 , obtiene .length de la matriz resultante

 var from = 5; var to = 7; var len = arr.filter(RegExp.prototype.test.bind(new RegExp(`[${from}-${to}]`))).length; 

Alternativamente, puede usar .toString() , .match()

 var arr = [1,4,6,7,8,6]; var from = 5; var to = 7; var res = arr.toString().match(new RegExp(`[${from}-${to}]`, "g")); var len = res.length; console.log(res.length); 

Usted puede hacer lo siguiente;

 var arr = [1,4,6,7,8,6], input = [5,7], result = arr.reduce((r,n) => n >= input[0] && n <= input[1] ? ++r : r, 0); console.log(result);