首頁 >資料庫 >mysql教程 >如何在 Javascript 陣列上執行內連線?

如何在 Javascript 陣列上執行內連線?

Linda Hamilton
Linda Hamilton原創
2025-01-06 00:45:40927瀏覽

How to Perform an Inner Join on Javascript Arrays?

用於資料操作的Javascript 數組的內連接

問題陳述:

基於公共鍵將兩個Javascript 數組組合成一個結果數組,類似SQL中的JOIN操作。

給定陣列:

  • '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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn