freeCodeCamp/guide/spanish/certifications/javascript-algorithms-and-d.../intermediate-algorithm-scri.../everything-be-true/index.md

7.1 KiB

title localeTitle
Everything Be True Todo sea verdad

:triangular_flag_on_post: Recuerda usar Read-Search-Ask si te atascas. Tratar de emparejar el programa :busts_in_silhouette: y escribe tu propio código :pencil:

:checkered_flag: Explicación del problema:

El programa necesita verificar si el segundo argumento es un elemento de verdad , y debe verificar esto para cada objeto en el primer argumento.

Enlaces relevantes

:speech_balloon: Sugerencia: 1

Recuerde iterar a través del primer argumento para verificar cada objeto.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 2

Solo si todos ellos son verdad volveremos verdad, así que asegúrese de que todos los comprueben.

intenta resolver el problema ahora

:speech_balloon: Sugerencia: 3

intenta resolver el problema ahora

Podría usar las funciones de bucles o devoluciones de llamada, hay varias formas de resolver este problema.

¡Alerta de spoiler!

señal de advertencia

Soluciones por delante!

:beginner: Solución de código básico:

Usando for-in loop y hasOwnProperty

function truthCheck(collection, pre) { 
  // Create a counter to check how many are true. 
  var counter = 0; 
  // Check for each object 
  for (var c in collection) { 
    // If it is has property and value is truthy 
    if (collection[c].hasOwnProperty(pre) && Boolean(collection[c][pre])) { 
      counter++; 
    } 
  } 
  // Outside the loop, check to see if we got true for all of them and return true or false 
  return counter == collection.length; 
 } 
 
 // test here 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: Ejecutar código

Explicación del código:

  • Primero creo un contador para verificar cuántos casos son verdaderos.
  • A continuación, compruebe cada objeto si el valor es verdadero
  • Fuera del bucle, verifico si la variable de contador tiene el mismo valor que la longitud de la colección , si es verdadera, luego devuelve verdadero , de lo contrario, devuelve falso

Enlaces relevantes

:sunflower: Solución de código intermedio:

Usando Array.every ()

function truthCheck(collection, pre) { 
  return collection.every(function (element) { 
    return element.hasOwnProperty(pre) && Boolean(element[pre]); 
  }); 
 } 
 
 // test here 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: Ejecutar código

Explicación del código:

  • Utiliza el método nativo "todos" para probar si todos los elementos de la matriz pasan la prueba.
  • Este enlace ayudará a Array.prototype.every ()

Enlaces relevantes

:rotating_light: Solución avanzada de código:

function truthCheck(collection, pre) { 
  // Is everyone being true? 
  return collection.every(obj => obj[pre]); 
 } 
 
 truthCheck([{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}], "sex"); 

:rocket: Ejecutar código

Explicación del código:

  • Para cada objeto en la matriz de collection , verifique la veracidad de la propiedad del objeto pasada en pre parámetro pre
  • Array#every método verifica internamente si el valor devuelto por la devolución de llamada es verdadero.
  • Devuelve true si pasa por cada objeto. De lo contrario, devuelve false .

Enlaces relevantes

:clipboard: NOTAS PARA LAS CONTRIBUCIONES:

  • :warning: NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
  • Agregue una explicación de su solución.
  • Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada . :traffic_light:
  • Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( :warning: NO elimine ningún nombre de usuario existente )

Ver :point_right: Wiki Challenge Solution Template para referencia.