Maison > base de données > tutoriel mysql > Comment effectuer une jointure interne sur des tableaux Javascript ?

Comment effectuer une jointure interne sur des tableaux Javascript ?

Linda Hamilton
Libérer: 2025-01-06 00:45:40
original
995 Les gens l'ont consulté

How to Perform an Inner Join on Javascript Arrays?

Jointure interne de tableaux Javascript pour la manipulation de données

Énoncé du problème :

Combinaison de deux tableaux Javascript en un seul tableau de résultats basé sur une clé commune, similaire à l'opération JOIN dans SQL.

Étant donné Tableaux :

  • 'userProfiles' : contient des objets avec les propriétés 'id' et 'name'.
  • 'questions' : contient des objets avec 'id', 'text' et ' Propriétés créées par'.

Solution :

Jointure interne Implémentation :

const innerJoin = (xs, ys, sel) =>
    xs.reduce((zs, x) =>
        ys.reduce((zs, y) =>        // cartesian product - all combinations
            zs.concat(sel(x, y) || []), // filter out the rows and columns you want
        zs), []);
Copier après la connexion

Exemple d'ensemble de données :

const userProfiles = [
    {id: 1, name: "Ashok"},
    {id: 2, name: "Amit"},
    {id: 3, name: "Rajeev"},
];

const questions = [
    {id: 1, text: "text1", createdBy: 2},
    {id: 2, text: "text2", createdBy: 2},
    {id: 3, text: "text3", createdBy: 1},
    {id: 4, text: "text4", createdBy: 2},
    {id: 5, text: "text5", createdBy: 3},
    {id: 6, text: "text6", createdBy: 3},
];
Copier après la connexion

Opération de jointure :

const result = innerJoin(userProfiles, questions,
    ({id: uid, name}, {id, text, createdBy}) =>
        createdBy === uid && {id, text, name});
Copier après la connexion

Sortie de la console :

Open your browser console to see the output.

[
  { id: 1, text: 'text3', name: 'Ashok' },
  { id: 2, text: 'text1', name: 'Amit' },
  { id: 2, text: 'text2', name: 'Amit' },
  { id: 4, text: 'text4', name: 'Amit' },
  { id: 5, text: 'text5', name: 'Rajeev' },
  { id: 6, text: 'text6', name: 'Rajeev' }
]
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal