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
915 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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal