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

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

Linda Hamilton
リリース: 2025-01-06 00:45:40
オリジナル
944 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート