J'ai besoin de concater deux tableaux. First Array est un tableau de descriptions
4 Réponses :
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);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.
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)
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)C'est simple avec la fonction de carte du tableau
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]
}
})