La solución es simple, basta con cambiar find() por filter(). Recordemos lo último visto:
Find: Retorna solo la primera coincidencia.
Filter: Retorna todas las coincidencias.
Introducción a JavaScript
¿Qué es JavaScript y para qué sirve?
Accede a la versión más actualizada de este contenido
¿Por qué JavaScript?
Elementos de un Lenguaje de Programación: Variables, Funciones y Sintaxis
¿Qué es una variable?
Qué son las funciones en JavaScript
¿Qué es una función declarativa y una expresiva?
Playground: retorna el tipo
Quiz: Introducción a JavaScript
Bases de JavaScript
Scope
Hoisting
Coerción
Valores: Truthy y Falsy
Operadores: Asignación, Comparación y Aritméticos.
Playground: compara un número secreto
Quiz: Bases de JavaScript
Condicionales
Condicionales: If, Else, else if
Switch
Playground: tienda de tecnología
Quiz: Condicionales
Arrays
¿Qué es un array?
Playground: detecta el elemento impostor de un array
Quiz: Arrays
Loops
Loops: For y For...of
Loops: While
Playground: rescata al estudiante
Objects
Objects
Objects: Función constructora
Playground: permiso para conducir
Métodos de Arrays
Métodos de recorridos de Arrays
Recorriendo Arrays con .find(), .forEach() y .some()
Eliminando elementos de un Array
Playground: Arregla el Bug
Quiz: Métodos de Arrays
Próximos pasos con JavaScript
Continúa con el Curso Práctico de JavaScript
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Aprovecha el precio especial.
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Juan David Castro Gallego
Aportes 185
Preguntas 7
La solución es simple, basta con cambiar find() por filter(). Recordemos lo último visto:
Find: Retorna solo la primera coincidencia.
Filter: Retorna todas las coincidencias.
Simplifique un poco el código
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter((car) => car.licensePlate);
}
Gracias a que leí los aportes en las clases anteriores, ya tenía el conocimiento de que find solo devuelve la primera coincidencia y filter las devuelve todas. Así que gracias a los compañeras que dejan información valiosa. :cowboy_hat_face:
Cambiar el find() por filter y todo el if no tiene caso
function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate;
});
}
export function solution(cars) {
const lista = cars.filter((car)=>
car.licensePlate);
return lista;
}
filter por find y para ahorrar codigo quitamos el else
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
}
});
}
COmo simple aporte, este blog es super bueno para leer y abundar mas.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
Find devuelve el primer elemento que coincida
Filter devuelve un arreglo con los valores que conincidan
¿Cual es la diferencia entre find y filter ?
filter retorna todas las coincidencias y find retorna solo la primer coincidencia.
export function solution(cars) {
//'.find()' nos regresa el primer elemento que cumpla con la condicion y detiene la busqueda.
//return cars.find(function (car) {
//'.filter()' recorre todo el array y regresa todos los elementos que complan con la condicion.
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Aunque no vi los aportes de mis compaPlatzis. Ya en serio @Platzi deberían filter los comentarios para que no veamos la solución.
Aca dejo una solución mas corta
export function solution(cars) {
return cars.filter(car => car.licensePlate);
}
Ésta es una forma simple de corregir el bug
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
return car.licensePlate;
});
}
Ésta es mi solución al desafio:
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
return car.licensePlate;
});
}
solution(cars);
Pues es similar al desafio anterior, solo que aca no tenemos que incluir a car.drivingLicense, y el metodo no es find, sino filter. Espero y les pueda ayudar esto:
return cars.filter(function (car) {
return car.licensePlate ? car.drivingLicense = true : car.drivingLicense = false;
});
export function solution(cars) {
// Utiliza el método filter() para obtener todos los objetos que tienen la propiedad licensePlate
return cars.filter(function (car) {
return car.licensePlate !== undefined; // Filtra los objetos con licensePlate definido
});
}
Saludos solo se debe cambiar en la condición del “return” la función “find” por la “filter”.
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Yo lo hice asi:
export function solution(cars) {
// 👇 Este es el código que funciona
return cars.filter(function (car) {
return Boolean(car.licensePlate) === true;
});
}
export function solution(cars) {
var carList = cars.filter((car) => car.licensePlate);
return carList;
}
Mi respuesta chicos espero que les pueda aportar
export function solution(cars) {
return cars.filter(car => car.licensePlate);
};
Es el primer Playground que paso a la primera… 😀😀😀
.
No estuvo tan difícill 🎉
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
export function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate !== undefined
});
}
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return car;
}
});
}
Creo que el mirar y mirar tanto nos hace perder de vista que el error puede ser algo pequeño xD. Aqui mi aporte.
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate != null || car.licensePlate != undefined ) {
return true;
} else {
return false;
}
});
}
export function solution(cars) {
var encontrarCarro = cars.filter(function (car) {
return car.licensePlate != null;
});
return encontrarCarro;
}
Mi solucion al reto
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter((car) => car.licensePlate);
}
Aunque tambien se me ocurrio esta otra solucion solo que decidi ver si habia una mas corta o mas simple al momento de resolver el reto.
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Esta fue mi solución 👇
function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate;
});
}
Así me quedo:
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
return car.licensePlate != null;
});
}
Mi solucion (consiste en cambiar find() por filter():
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
aquí mi aporte:
<export function solution(cars) {
return cars.filter(function (cars) {
if (cars.licensePlate != null) {
return cars
}
});
}>
export function solution(cars) {
var carrosFiltrados = cars.filter(function(car) {
return car.licensePlate });
}
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
export function solution(cars) {
cars = cars;
console.log(cars);
// 👇 Este es el código que no funciona
var encuentraPlaca = cars.filter(function (articulo) {
return articulo.licensePlate
});
return encuentraPlaca;
}
Mi aporte!
export function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate;
});
}
Debemos cambiar el método find
por el filter
, pues find
retorna únicamente el primer elemento con esa característica que encuentre, mientras que filter
retorna el subconjunto de elementos que lo cumplan. En adición, se que lo explique antes, pero ya que null
y undefined
son valores Flasy
, podemos simplemente validar si licensePlate
existe, pues si lo hace será evaluado cómo un true
.
El problema en la función es que se está utilizando el método find en lugar del método filter. El método find devuelve el primer elemento que cumple con la condición especificada, pero no filtra el array completo
export function solution(cars) {
return cars.filter(function (car) {
return car.hasOwnProperty('licensePlate');
});
}
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
Lo explicaron en los comentarios anteriores: diferenciar .find y .filter
Acá está mi solución:
export function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate;
});
}
Mi solucion
function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Mi solución.
function solution(cars) {
return cars.filter((car) => {
return !!car.licensePlate
});
}
Solo cambie el metodo .find por el metodo .filter
export function solution(cars) {
return cars.filter(function(car) {
if(car.licensePlate) {
return true;
} else {return false;
}
} );
}
Mi aporte 😃
una solucion un poco mas simplificada, espero les sirva!!
export function solution(cars) {
return cars.filter(function(car){
return car.licensePlate ? true : false;
});
}
otra posible solucion
export function solution(cars) {
return cars.filter(function(car){
return car.licensePlate !== null && car.licensePlate !== undefined && car.licensePlate !== false ? true : false;
});
}
Mi aporte 😃
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Si bien hay soluciones mucho más optimas, esta es otra:
export function solution(cars) {
let carsWithLicensePlate = cars.filter(function (car){
if (car.licensePlate !== null && car.licensePlate !== undefined) {
return car;
}
});
return carsWithLicensePlate;
}
La solución realmente es de atención, los cambios son mínimos.
function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return car.licensePlate;
}
});
}
export function solution(cars) {
const carLicenses = cars.filter((car) => car?.licensePlate)
return carLicenses
}
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter((car) => { return 'licensePlate' in car});
}
export function solution(cars) {
return cars.filter(el => "licensePlate" in el);
}
Solo es cambiar el find por el filter!
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Esta es mi respuesta, creo que tal vez por temas de optimización seria mejor esta solución, que solo cambiar el find por un filter
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
return car.licensePlate != undefined
});
}
Mi solución:
export function solution(cars) {
return cars.filter(car => car.licensePlate);
}
Excelente practica!
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
} else {
return false;
}
});
}
Hola, así fue como pude resolver el reto:
export function solution(cars) {
// 👇 Este es el código que no funciona
return cars.filter(function (car) {
return Boolean(car.licensePlate) === true
}
);
}
export function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate
});
}
Después de analizar las clases pasadas y sin mirar la respuesta llegué a la solución, es muy sencillo. Lo más efectivo para resolver cualquier ejercicio es siempre analizar y pensar el paso a paso.
export function solution(cars) {
return cars.filter(function (car) {
return car.licensePlate;
});
}
es un poco complejo javascript
export function solution(cars) {
return cars.filter(function (car) {
if (car.licensePlate) {
return true;
}
});
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?