Hola a todos, tengo el siguiente código.
Estoy usando ReactJS.
Estoy tratando de filtrar de mi archivo zipCode ese objeto de código postal que un usuario proporcionará en la entrada. Esa lógica de filtrado funcionaba bien, pero no puedo guardar mi objeto en la variable porque estoy haciendo algo mal.
Miré este artículo pero no me ayudó.
En este caso, puedo ver el objeto al hacer el registro de la consola.
Object.values(zipWithLocation).forEach((o) => { Object.values(o).forEach((second) => console.log("second", second)); });Pero necesito implementarlo de esta manera.
const first = Object.values(zipWithLocation).forEach((o) => { Object.values(o).forEach((a) => { return a; }); }); console.log("first", first); Pero de esta manera, la consola registra undefined .
Por favor, ayúdame a arreglar el último ejemplo. Me ayudaría a implementar lo siguiente.
return( <> <p> city -{first.City}, location: {first.State} <p> <p>{first.Delivery}</p> <p>please provide address: {first.Address} </p> </> )Dado que zipCodefromInput debe ser una clave de zipCode, puede obtener una referencia a los datos mediante zipCode[zipCodefromInput] (no se necesita bucle).
Probar
import { useState } from "react"; import "./styles.css"; import zipCode from "./zipCodes"; export default function App() { const [zipCodefromInput, setZipCodeFromInput] = useState(); if (zipCodefromInput in zipCode) { let first = zipCode[zipCodefromInput][0]; console.log(first.City); } else { console.log("entered zip code not found in list"); } return ( <div className="App"> <input placeholder="2101" onChange={(e) => { setZipCodeFromInput(+e.target.value); }} /> </div> ); }.forEach() no devuelve nada (por lo tanto, undefined ), probablemente quiera usar .map() si desea asignar la matriz a una variable.
Para su caso, parece que .find() se ajustaría mejor a sus necesidades, ya que atraviesa la matriz y se detiene en la primera condición coincidente.
const array = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']; const firstB = array.find((item, index) => { console.log('item:', item, 'index:', index) return item === 'b' }); console.log('firstB', firstB); const forEachResult = array.forEach((item) => { return item; }); console.log('forEachResult', forEachResult); const mapResult = array.map((item) => {return item}); console.log('mapResult', mapResult);