Tengo el siguiente tipo de archivo json:
{ "trees":{ "name":"a", "age":"9", "height":"10", "location":"park" }, "cars":{ "name":"b", "age":"3", "height":"0.0", "location":"park" }, "bikes":{ "name":"c", "age":"110", "height":"0.0", "location":"park" } }Lo que sucede en mi aplicación de reacción es que envío este json desde app.js a un componente secundario (1) y desde allí envío valores únicos a otro componente (2) para representarlos en una fila. Ahora tengo un problema que es que quiero enviar para enviar datos en el componente (2) solo cuando height! = 0.0, lo cual no puedo hacer.
Este es mi componente (1):
{Object.entries(props.data).map( ([key, { // name, age, height, location ...e }]) => { return (<tr> <Single key={key} {...e} /> </tr>) } )}Quiero filtrarlo de modo que no se proporcionen datos al componente único que tiene altura == 0.0
Primero puede obtener el par de clave-valor usando Object.entries y luego filtrar los valores que no desea usar filter . Simple
const result = Object.entries(obj) .filter((o) => o[1].height !== "0.0") .map([k, v] => (<tr> <Single key={key} {...e} /> </tr>)) const obj = { trees: { name: "a", age: "9", height: "10", location: "park", }, cars: { name: "b", age: "3", height: "0.0", location: "park", }, bikes: { name: "c", age: "110", height: "0.0", location: "park", }, }; const result = Object.entries(obj).filter((o) => o[1].height !== "0.0"); console.log(result);