ホームページ >データベース >mysql チュートリアル >Javascript 配列で内部結合を実行するにはどうすればよいですか?

Javascript 配列で内部結合を実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-06 00:45:40945ブラウズ

How to Perform an Inner Join on Javascript Arrays?

データ操作のための Javascript 配列の内部結合

問題ステートメント:

共通キーに基づいて 2 つの Javascript 配列を 1 つの結果配列に結合します。 SQL の JOIN 操作に似ています。

Given配列:

  • 'userProfiles': 'id' および 'name' プロパティを持つオブジェクトが含まれます。
  • 'questions': 'id'、'text'、' を持つオブジェクトが含まれます。作成者'プロパティ。

解決策:

内部結合の実装:

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), []);

データセットの例:

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},
];

結合操作:

const result = innerJoin(userProfiles, questions,
    ({id: uid, name}, {id, text, createdBy}) =>
        createdBy === uid && {id, text, name});

コンソール出力:

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' }
]

以上がJavascript 配列で内部結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。