[Combate real de JS] contando

contar

Inserte la descripción de la imagen aquí

Método uno: bucle for ordinario

function count(arr, item) {
    
    
  let frequency = 0
  for(let i = 0; i < arr.length; i++) {
    
    
    if(arr[i] === item) {
    
    
      frequency++
    }
  }
  return frequency
}

Inserte la descripción de la imagen aquí

Método dos: para cada uno

function count(arr, item) {
    
    
  let frequency = 0
  arr.forEach(function(currentValue) {
    
    
    if(currentValue === item) {
    
    
      frequency++
    }
  })
  return frequency
}

Inserte la descripción de la imagen aquí

Método tres: filtrar

function count(arr, item) {
    
    
  let frequency = arr.filter(function(currentValue) {
    
    
    return currentValue === item
  })
  return frequency.length
}

Inserte la descripción de la imagen aquí

Método 4: mapa (mayor eficiencia que filtro)

function count(arr, item) {
    
    
  let frequency = 0
  arr.map(function(currentValue) {
    
    
    if (currentValue === item) {
    
    
      frequency++
    }
  })
  return frequency
}

Inserte la descripción de la imagen aquí
La función del mapa es un poco similar al filtro, pero el mapa procesa todos los elementos de la matriz para verificar la condición de la función, y el resultado final es una nueva matriz con el mismo número de elementos.

Aunque la función de filtro también devuelve una nueva matriz, el número de elementos es igual a la suma de los elementos de la condición de la función de verificación.

Método cinco: reducir

function count(arr, item) {
    
    
  let frequency = arr.reduce(function(total,currentValue) {
    
    
    return currentValue === item ? total + 1 : total
  },0) 
  return frequency
}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_43352901/article/details/108394103
Recomendado
Clasificación