DEV Community

Advent.js🎅🏼| #1: Contando ovejas para dormir.

Cristian Fernando on December 02, 2021

Contando ovejas para dormir Considera una lista/array de ovejas. Cada oveja tiene un nombre y un color. Haz una función que devuelva una...
Collapse
 
alexjamesmx profile image
Alejandro Santiago •

Asi perros jijija

return ovejas.filter(oveja => oveja.name.toLowerCase().includes('n') && oveja.name.toLowerCase().includes('a') && oveja.color === 'rojo'
)

Collapse
 
s3iken profile image
s3iken •

Esta es mi forma un poco más corta, por si te interesa :)

function contarOvejas(ovejas) {

return ovejas.filter(o => o.name.toLowerCase().includes('a' && 'n') && ovejas.filter(o => o.color === 'rojo'))

}

Collapse
 
duxtech profile image
Cristian Fernando •

Está chula esa solución! No sabía que podías usar un and lógico dentro de un includes. Cada día se aprende algo nuevo! Gracias por compartir tu respuesta!

Collapse
 
jgilces profile image
jgilces •

Mi solución:

function contarOvejas(ovejas) {

  const ovejitas = ovejas.filter((el)=>{
      return (el.color==='rojo' && el.name.toLowerCase().includes('n') && el.name.toLowerCase().includes('a'));
  });

  return ovejitas;
}
Enter fullscreen mode Exit fullscreen mode
Collapse
 
duxtech profile image
Cristian Fernando •

nice! ojo que este año midu hará otro advent js

Collapse
 
mendozalz profile image
Lenin Mendoza •

el mio no fue el mejor algoritmo pero por lo menos lo soluciones por mi cuenta
const ovejas = [
{ name: 'Noa', color: 'azul' },
{ name: 'Euge', color: 'rojo' },
{ name: 'Navidad', color: 'rojo' },
{ name: 'Ki Na Ma', color: 'rojo'},
{ name: 'AAAAAaaaaa', color: 'rojo' },
{ name: 'Nnnnnnnn', color: 'rojo'}
]

export default function contarOvejas(ovejas) {
ovejas = ovejas.filter((oveja)=>{
const N = 'N';
const a = 'a';
if (oveja.name.includes(a) && oveja.name.includes(N) && oveja.color.includes('rojo')){
return oveja.name && oveja.color
}else{
"No cumple"
}
});
return ovejas
}

Collapse
 
duxtech profile image
Cristian Fernando •

es una respuesta valida

Collapse
 
marquimark profile image
Marquimark •

Esta es mi solucion al reto 2, espero sus comentarios, gracias.

const ovejas = [
{ name: 'Noya', color: 'rojo' },
{ name: 'Euynge', color: 'azul' },
{ name: 'Navyidad', color: 'rojo' },
{ name: 'Ki Na Ma', color: 'verde' },
{ name: 'Max', color: 'blanco'},
{ name: 'Maxin', color: 'rojo'}
]

validaOvejaColorNombre = (ovejas) => {
let ovejasN = '';
let valida = '';

return resultado = ovejas.filter(( oveja) => {
ovejasN = oveja.name.toLowerCase().trim();
valida = ovejasN.includes('n') && ovejasN.includes('a');
return oveja.color === 'rojo' && valida
})

}

console.log(validaOvejaColorNombre(ovejas));

Collapse
 
duxtech profile image
Cristian Fernando •

Esta chula esa solución, intentaste el reto 3? esta para pensar un poco más

Collapse
 
kylety1990 profile image
kylety1990 •

Mi solución:
const ovejas = [
{name: 'Pepa', necklace:'rojo'},
{name:'Dani', necklace:'rojo'},
{name: 'Juanjo', necklace:'azul'},
{name: 'Rudolf jaja', necklace: 'rojo' }
]

const redNecklace = ovejas.filter(({necklace, name})=> (name.toLowerCase().includes('n' && 'e')) && necklace==='rojo')

console.log(redNecklace)

Collapse
 
mendozalz profile image
Lenin Mendoza •

Necesito ayuda para poder avanzar pues no me siento cómodo al lograr ver sus soluciones sin lograr entender el por que y de donde se saco la siguiente solución pues no sabia que podíamos utilizar de esta manera reduce (Alguien puede explicarmelo por favor?)

` .reduce((contador, regalo) => {
// De donde sale que podemos utilizar reduce de esta manera?
contador[regalo] = (contador[regalo] || 0) + 1;
return contador

}, {});
}
`

Collapse
 
jcodev2 profile image
Jeancarlo Morales •

Mi solución es esta:
const ovejasRojo = ovejas.filter((oveja) => oveja.color === 'rojo' && oveja.name.includes('${('n' || 'N') && ('a' || 'A')}'));

Collapse
 
error404js profile image
IveMery •

dejo mi solucion

function contarOvejas(ovejas) {
return ovejas.filter((oveja) => oveja.color === 'rojo' && oveja.name.indexOf("Na") !== -1)
}