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

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

15 Días
8 Hrs
48 Min
11 Seg
Curso Básico de JavaScript

Curso Básico de JavaScript

Juan David Castro Gallego

Juan David Castro Gallego

Playground: Arregla el Bug

29/30

Aportes 185

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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.

Mi aporte lo comparto solo porque no vi que nadie lo hiciera igual ![](https://static.platzi.com/media/user_upload/image-2efb0d28-a712-4fcc-81b0-ef4403788e99.jpg)
```js export function solution(cars) { return cars.filter((car) => (car.licensePlate)); } ```
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);
}
tuve varias maneras de solucionar //priomera forma // ![](https://static.platzi.com/media/user_upload/image-cc7908e7-b0d8-4291-bf0b-f584c6504d0f.jpg) //segunda manera// ![](https://static.platzi.com/media/user_upload/image-61b01980-5613-42dc-bed2-80a85f4383b2.jpg)
![](https://static.platzi.com/media/user_upload/image-b1536aa2-01e8-4000-b017-5f613b1135e7.jpg)
Estaba super fácil jajaja solo era cambiar el find por el filter, ya que en el mismo ejercicio nos lo dicen, debemos filtrar (mostrar los que cumplen y ocultar los que no cumplen) mientras que el find lo que hace es encontrar en el array el primero que cumpla con la característica que buscamos
```js export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter(function (car) { return car.licensePlate != null; }); } ```
![](https://static.platzi.com/media/user_upload/image-e6b1bd8e-5a94-403f-91f7-030c87eadd23.jpg)
```js export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter((car) => car.licensePlate); } ```export function solution(cars) {  // 👇 Este es el código que no funciona  return cars.filter((car) => car.licensePlate);}
```js export const solution = (cars) => cars.filter(car => !!car.licensePlate); ```
Comparto mi solución por aquí: ```js export function solution(cars) { return cars.filter((car) => car.licensePlate); } ```
`export function solution(cars) {  ` `return cars.filter(car => Boolean(car.licensePlate));` `}`
return cars.filter(function (car) {    if (car.licensePlate) {      return true;    } else {      return false;    } si revisan cual es el método que mejor se adecua a lo que pide el ejercicio el método filter permite filtrar todos los objetos que cumplen la condición
otra solucion: ```js export function solution(cars) { let carroConLicencia = cars.filter(function (car) { return car.licensePlate; }); return carroConLicencia; } ```
otra solucion: ```js export function solution(cars) { let carroConLicencia = cars.filter(function (car) { return car.licensePlate; }); return carroConLicencia; } ```export function solution(cars) {  let carroConLicencia = cars.filter(function (car) {    return car.licensePlate;  });  return carroConLicencia;}
```js export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter(function (car) { return car.licensePlate; }); } ```
```js 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) {      return true;    } else {      return false;    }  });}
export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter((cars)=> cars.licensePlate !==undefined)}
![](https://static.platzi.com/media/user_upload/image-94e69cd5-3aae-41d9-9ca7-18df71a8dd4c.jpg)
![](https://static.platzi.com/media/user_upload/image-e2ae1571-758e-4a63-a7e0-4e41376e4470.jpg)
```js function solution(cars) { return cars.filter(function (car) { return car.licensePlate !== undefined; }); } const cars = [ { color: 'red', brand: 'Kia', }, { color: 'gray', brand: 'Chevrolet', licensePlate: 'AAA111', }, { licensePlate: 'RGB255', }, ]; console.log(solution(cars)); ``` En esta versión, `filter` se utiliza para crear un nuevo array que contiene solo los elementos que tienen la propiedad `licensePlate`. La condición en la función de callback verifica si `car.licensePlate` es diferente de `undefined`. Esto garantiza que solo se incluyan los objetos que tienen la propiedad `licensePlate`.
```js export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter(function (car) { return car.licensePlate != null }); } ```Mi humilde solución
Les comparto el resultado de mi revisión: 1. Dediqué tiempo a leer y comprender los requisitos del proyecto. 2. Procedí a examinar el código; considero fundamental comprender lo ya existente. En ocasiones, observo a muchos desarrolladores que no se toman el tiempo necesario para entender el código existente en un proyecto y, en lugar de eso, realizan modificaciones según su propio criterio. 3. Comprendí que solo necesitaba cambiar el método `.find()` por `.find()`. 4. Optimicé el código para hacerlo más legible y fácil de entender. **Resultado:** ```js export function solution(cars) { return cars.filter(function (car) { return car.licensePlate }); } ```
export function solution(cars) {    // 👇 Este es el código que no funciona    var licePl = cars.filter(function (car) {      return car.licensePlate;    })      return licePl;   }
```js export function solution(cars) { // 👇 Este es el código que no funciona return cars.filter((car) => car.licensePlate) } ```
```js funciton(dejoMiSolucion) = { let filterCar = cars.filter(function (car) { if(car.licensePlate){ return car; } return; }) }; ```
funciton(dejoMiSolucion) = {    let filterCar = cars.filter(function (car) {        if(car.licensePlate){            return car;        } return;    })};
Mi solución fue simple `export function solution(cars) {  var filtrado = cars.filter(function (carro) {    if (carro.licensePlate !== undefined) {      return true;    }  });  return filtrado;}`
export function solution(cars) {  return cars.filter(function (car) {    if (car.licensePlate) {      return car;    }    return; }); }
aqui mi aporte: export function solution(cars) {   return cars.filter ( function (car) {    if (car.licensePlate === null) {      return false;    } else {      return 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;
  });
}
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-10-12%20104501-5afe6a1d-0a85-4b5c-ac84-1db72decc346.jpg)
![](https://static.platzi.com/media/user_upload/image-ae1042b4-850e-4689-b87f-d6ec9c5485fc.jpg)
ya me había acostumbrado a la otra interface :(

É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;
    }
  });   
}
undefined