[英]INNER JOIN in Javascript
const products = [{ id: 5, productName: "Logitech Mouse", unitprice: 35 }, { id: 6, productName: "Logitech Keyboard", unitprice: 40 } ]; const cart = [{ id: 101, userId: 3, productId: 5, quantity: 2 }, { id: 102, userId: 3, productId: 6, quantity: 1 } ];
使用對象中的這些數據,我如何將購物車的productId
內部連接到 product 的id
? 這樣輸出將是:
羅技鼠標, 35, 2 羅技鍵盤, 40, 1
我會要求您先嘗試自己,然后再尋求幫助,以便以最佳方式從社區獲得幫助。
const products = [{ id: 5, productName: "Logitech Mouse", unitprice: 35 }, { id: 6, productName: "Logitech Keyboard", unitprice: 40 } ]; const cart = [{ id: 101, userId: 3, productId: 5, quantity: 2 }, { id: 102, userId: 3, productId: 6, quantity: 1 } ]; var res = products.map(({id,...rest}) => { var cartObj = cart.find(c => c.productId == id); rest.quantity = (cartObj != undefined && 'quantity' in cartObj) ? cartObj.quantity : 'N/A'; return rest; }); console.log(res);
您可以采用更像 SQL 的方法為產品創建哈希表,並使用哈希表中對象的所需屬性和quantity
映射購物車
結果,您將獲得具有產品名稱、單價和數量的新對象。
const select = (keys, object) => Object.fromEntries(keys.map(k => [k, object[k]])), products = [{ id: 5, productName: "Logitech Mouse", unitprice: 35 }, { id: 6, productName: "Logitech Keyboard", unitprice: 40 }], cart = [{ id: 101, userId: 3, productId: 5, quantity: 2 }, { id: 102, userId: 3, productId: 6, quantity: 1 }], productsMap = products.reduce((r, o) => (r[o.id] = o, r), {}), result = cart.map(({ productId, quantity }) => ({ ...select(['productName', 'unitprice'], productsMap[productId]), quantity })); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.