3
votes

Comment concater deux tableaux en un avec ces données? JS

J'ai besoin de concater deux tableaux. First Array est un tableau de descriptions


0 commentaires

4 Réponses :


3
votes

En supposant que les tableaux sont toujours de longueur égale ... vous pouvez utiliser le deuxième argument passé à la fonction de rappel (qui est l'index de chaque élément) pour accéder aux éléments de l'autre tableau.

const descriptions = ['One', '', 'Three', undefined];

const allPictures = ['url-1', 'url-2', null, ''];

const result = descriptions.reduce((acc,description, index) => {
  const url = allPictures[index];
  if(description && url) {
    acc.push({ description, url });
  }
  return acc;
}, [])

console.log(result);

Si vous ne souhaitez pas créer d'objet lorsque l'un des tableaux a des valeurs fausses:

const description = ['One', 'Two', 'Three'];

const allPictures = ['url-1', 'url-2', 'url-3'];

const result = description.map((des, index) => ({
  url: allPictures[index],
  description: des
}));

console.log(result);


4 commentaires

Okey mais comment supprimer objet-objet si la valeur est "" ou nulle?


Je veux pousser uniquement un objet avec des valeurs


@wamovec Alors, votre tableau contient-il des valeurs fausses? Mettez à jour votre question.


@wamovec J'ai mis à jour ma réponse ... c'est peut-être ce que vous demandez.



0
votes
const description = ['One', 'Two', 'Three'];
const allPictures = ['url-1', 'url-2', 'url-3'];

const imageObject = description.map((item, index) => {
  return {
    url: item,
    description: allPictures[index]
  }
})


console.log('imageObject', imageObject)

0 commentaires

0
votes

Vous pouvez utiliser une boucle for standard

const allPictures = ['url-1', 'url-2', 'url-3'];
const description = ['One', 'Two', 'Three'];

const result = [];
for (let i = 0; i < allPictures.length; i++) {
  result.push({
    url: allPictures[i],
    description: description[i]
  });
}
console.log(result)


0 commentaires

0
votes

C'est simple avec la fonction de carte du tableau

  1. garder une trace sur l'index, vous l'utiliserez pour connaître l'index d'un élément afin que vous puissiez choisir son élément correspondant sur un autre tableau comme ci-dessous

    const mergedArray = allPictures.map ((url, index) => {

         return { url : url,
              description : description[index]
            }
      })
    


0 commentaires