J'ai ce tableau de tableaux: ... et je voudrais le transformer en ceci: p> i Devinez que c'est avec une "boucle", mais je ne vois pas comment le faire. Merci d'aide. P> p>
3 Réponses :
J'espère que cela vous aide, j'ai remplacé les valeurs avec une chaîne pour obtenir la solution minimale.
p>
let arr = [[1,'a'],[1,'b'],[2,'c'],[2,'d'],[3,'e'],[3,'f']];
arr.forEach(function(key, index){
key.push(arr[index+1][1]);
arr.splice(index+1, 1);
});
console.log(arr);Il fonctionne comme un charme ! Très belle solution, très courte et très efficace. Merci beaucoup !
J'espère que cela aide
p>
arr = [[1,'a'],[1,'b'],[2,'c'],[2,'d'],[3,'e'],[3,'f']];
const newArr = arr.reduce((acc, cur) => {
const prev = acc.find(elem => elem[0] === cur[0]);
if(prev) {
prev[1] += ", " + cur[1];
}
else {
acc.push(cur);
}
return acc;
}
, []);
console.log(newArr);Merci pour votre réponse.
Vous pouvez utiliser p> réduire code>. Dans la fonction de fonction de rappel, vérifiez si l'accumulateur a une clé. Sinon, créez la touche et ajoutez de la valeur à celle-ci let arr = [
[1, 'a'],
[1, 'b'],
[2, 'c'],
[2, 'd'],
[3, 'e'],
[3, 'f']
];
let data = arr.reduce((acc, curr) => {
if (!acc[curr[0]]) {
acc[curr[0]] = [];
}
curr.forEach((item) => {
if (acc[curr[0]].indexOf(item) === -1) {
acc[curr[0]].push(item);
}
})
return acc;
}, {});
console.log(Object.values(data))
Merci pour votre réponse.