Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

185
Visualizações
Cómo almacenar múltiples valores en objetos dentro de una matriz

Problema:

Tengo una API y cada objeto dentro de la API no tiene un valor. Me gustaría agregar un valor único a cada objeto dentro de la matriz para poder crear una función y usar 'e.target.value' con detectores de eventos. Estoy haciendo esto en nextjs.

Por qué: porque quiero almacenar cada valor en una matriz y en un almacenamiento local antes de mostrar los datos almacenados en la matriz como un elemento favorito.

Hay alguna forma de hacer esto ?

Información:

data.items tiene más de 30 objetos -

 "items": [ { "id": 119603782, "node_id": "MDEwOlJlcG9zaXRvcnkxMTk2MDM3ODI=", "name": "react-contextual", "full_name": "drcmda/react-contextual", "private": false, "owner": { "login": "drcmda", "id": 2223602, } { "id": 119603782, "node_id": "MDEwOlJlcG9zaXRvcnkxMTk2MDM3ODI=", "name": "react-contextual", "full_name": "drcmda/react-contextual", "private": false, "owner": { "login": "drcmda", "id": 2223602, }

Hasta ahora, mis datos han sido ordenados y mapeados así.

 {data.items .sort(function (a, b) { return b.stargazers_count - a.stargazers_count && new Date (b.created_at) - new Date(a.created_at) }) .map((d) => ( <div onClick={checkId} key={d.id} className=" border-white p-5"> <h1 className="text-2xl font-bold">Repo name: {d.name}</h1>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Si desea agregar una clave de VALOR a cada objeto, puede hacer lo siguiente:

 const [isLoading, setIsLoading] = useState(false), [items, setItems] = useState([]); useEffect(() => { (async () => { setIsLoading(true); try { //you can replace axios with fetch const res = await axios('https://your-api'), // clone deep is from lodash => you can use the spread (...) operator if you want clonedItems = cloneDeep(res.data.items); clonedItems.forEach((el) => { // add whatever you want in the (value) el.value = 'required value'; }); //sort items based on the required key clonedItems.sort((a, b) => { //replace name with your key if (a.name.toLowerCase() < b.name.toLowerCase()) { return -1; } if (a.name.toLowerCase() > b.name.toLowerCase()) { return 1; } return 0; }); //check the modified items console.log(clonedItems); setItems(clonedItems); } catch (err) { //replace it with your error handler code console.log(err); } finally { setIsLoading(false); } })(); }, []);

Notas:

  • Debe ordenar sus elementos antes de almacenarlos en el estado
  • Puedes reemplazar axios con fetch
  • puede usar el operador de propagación (...) en lugar de cloneDeep de lodash
about 4 years ago · Juan Pablo Isaza Relatório

0

Un ejemplo que usa el índice como único para fines de visualización.

 const data = { items: [ { id: 119603782, node_id: "MDEwOlJlcG9zaXRvcnkxMTk2MDM3ODI=", name: "react-contextual", full_name: "drcmda/react-contextual", private: false, owner: { login: "drcmda", id: 2223602, }, }, { id: 119603782, node_id: "MDEwOlJlcG9zaXRvcnkxMTk2MDM3ODI=", name: "react-contextual", full_name: "drcmda/react-contextual", private: false, owner: { login: "drcmda", id: 2223602, }, }, ], }; const items = data.items.map((item, idx) => ({ ...item, idx })); // new item const newItem = { id: 119603782, node_id: "MDEwOlJlcG9zaXRvcnkxMTk2MDM3ODI=", name: "react-contextual", full_name: "drcmda/react-contextual", private: false, owner: { login: "drcmda", id: 2223602, }, }; function addNewItems(items, newItem) { newItem.idx = items.length; items.push(newItem); return items; } console.log(addNewItems(items, newItem));

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda