J'essaie de combiner deux tableaux dans un tableau d'objets et je suis aux prises avec cela.Combiner deux tableaux dans un tableau d'objets, en comptant les doublons
Exemple:
arr1 = [a,b,c];
arr2 = [a,a,a,b,b,c,d,d];
La façon dont je voudrais avoir ces deux combinés:
combinedArr = [
{name: a, amount: 3},
{name: b, amount: 2},
{name: c, amount: 1}
];
Notez que seules les valeurs stockées dans arr1 doivent être intégrés, toute arr2 valeurs inexistante arr1 sont juste laissés de côté. (dans cet exemple, c'est "d")
Il est également important de savoir que j'utilise ceci pour Extendscript d'After Effect qui me limite à la 3ème édition de la norme ECMA-262, me laissant avec le bon vieux javascript classique . Les fonctionnalités telles que concat, slice et join ne sont pas disponibles.
J'ai essayé de contourner mais je ne peux pas le comprendre .. Je suis sûr qu'il est possible de réaliser une solution avec seulement deux ou trois boucles intelligentes à travers les rangées.
Merci à l'avance, Simon
EDIT: J'ai créé la confusion en ne pas ajouter mes propres tentatives de mon problème. Je suis désolé de ne pas l'avoir fait, j'y ai réfléchi du jour au lendemain et j'ai écrit cette question sur mon téléphone dans le train.
J'ai déjà reçu des réponses incroyables dont je suis très content, juste pour prouver que je n'avais pas de mauvais sens à propos de ma question, je posterai ce que j'avais écrit auparavant (pas simplifié, mais du code réel) :
var createMarkerList = function() {
var subList = _createMarkerListSub(); //in this example arr1
var masterList = _createMarkerListMaster(); //in this example arr2
var output = [];
for(var i=0;i<subList.length;i++){
var uniqueMarker = subList[i];
output.push({
name: uniqueMarker,
amount: 0,
});
}
for(var i=0;i<masterList.length;i++){
var genericMarker = masterList[i];
if(output[i].name == genericMarker){
output[i].amount = output[i].amount +1;
}
}
}
S'il vous plaît noter que je did't essayer d'obtenir le chemin facile autour de vous demande la réponse sans essayer de le comprendre, je ne pouvais tout simplement pas obtenir ma tête autour d'elle pour une raison quelconque.
Avez-vous essayé quoi que ce soit? – Rajesh
Je suis d'accord avec Rajesh, et c'est juste quelque chose de si basique, je recommande de lire un tutoriel javascript d'abord – Verthosa
@ Simon, rappelez-vous qu'il est très important de partager votre effort. Ce peut être * code/algorithmes/liens recherchés *. À moins que vous ne le partagiez, votre question ressemblera à une exigence et non à un énoncé de problème. Cela pourrait attirer des votes/commentaires non désirés. – Rajesh