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

124
Visualizações
vincular valores de matriz en un objeto a una matriz en un objeto anidado

¿Cómo tomo cada valor de cadena en la matriz imageKeys y lo uso para construir una URL en la matriz de imágenes en el objeto anidado imageList, sin mutar el objeto?

 const myInitialStateFromParent = { imageKeys: ['name1', 'name2'], itemType: "something", itemName: "something else", ImageList:{ images: [], height: 100, width: 100, maxImages: 2 } }

para cada clave en imageKeys, quiero agregar un nuevo objeto en la matriz de imágenes vacía. p.ej:

 {url: baseUrl + '/' + 'name1'}, {url: baseUrl + '/' + 'name2'}

Quiero mantener todo lo demás en todo el objeto igual. Esto está en un componente de función secundaria de React, useEffect(() => {}, [imageKeys]).

Intenté algo como,

 for (const k of myInitialStateFromParent.imageKeys) { var img = {url: `baseUrl${k}`} [...myInitialStateFromParent.ImageList.images, img] // copy the images, insert new one }

Pero recibo un error sobre la propagación que solo funciona con el último parámetro formal.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

 const myInitialStateFromParent = { imageKeys: ['name1', 'name2'], itemType: "something", itemName: "something else", ImageList:{ images: [], height: 100, width: 100, maxImages: 2 } } const baseUrl = 'dummyUrl'; function mapUrls(object) { const { imageKeys, ImageList } = object; const newImagesList = { ...ImageList, images: imageKeys.map((string) => ({ url: `${baseUrl}/${string}`})) }; return { ...object, ImageList: newImagesList } } console.log(mapUrls(myInitialStateFromParent))

about 4 years ago · Juan Pablo Isaza Relatório

0

En su caso, solo necesita enviar valores a su matriz de imágenes:

Manera fácil:

 myInitialStateFromParent.imageKeys.forEach((k) => { myInitialStateFromParent.ImageList.images.push({ url: `baseUrl${k}` }); });

No está asignando valores en su código, para usar su código y obtener resultados, debe cambiarlo y asignar los nuevos valores a esa matriz.

Manera difícil:

 for (const k of myInitialStateFromParent.imageKeys) { const img = { url: `baseUrl${k}` }; myInitialStateFromParent.ImageList.images = [ ...myInitialStateFromParent.ImageList.images, img, ]; // or // myInitialStateFromParent.ImageList.images = myInitialStateFromParent.ImageList.images.concat(img); }
about 4 years ago · Juan Pablo Isaza Relatório

0

Puedes usar este código:

 const myInitialStateFromParent = { imageKeys: ['name1', 'name2'], itemType: "something", itemName: "something else", ImageList:{ images: [], height: 100, width: 100, maxImages: 2 } } myInitialStateFromParent.imageKeys.forEach(key=>{ return myInitialStateFromParent.ImageList.images.push({url: 'baseURL'+key}) }) console.log(myInitialStateFromParent.ImageList.images)

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