【发布时间】:2016-05-26 15:03:41
【问题描述】:
我有一个包含几个数组的单页网络应用程序,这些数组在逻辑上是链接的:来自“用户”的记录指的是“user_types”中的记录,“费用”指的是“用户”等:
var users = [
{ id: "u0001", name: "John", user_type_id: "1" },
{ id: "u0002", name: "Bob", user_type_id: "1" },
{ id: "u0003", name: "Alice", user_type_id: "5" },
{ id: "u0004", name: "Jennifer", user_type_id: "5" },
// ... more
];
var user_types = [
{ id: "1", name: "Regular Clients"},
{ id: "5", name: "VIP Clients"},
// ... more
];
var charges = [
{ id: "7443", user_id: "u0001", date: "2016-01-01", amount: "3.99", },
{ id: "7445", user_id: "u0001", date: "2016-01-01", amount: "4.02", },
{ id: "7448", user_id: "u0001", date: "2016-01-01", amount: "6.99", },
{ id: "7453", user_id: "u0003", date: "2016-01-01", amount: "3.00", },
{ id: "7469", user_id: null , date: "2016-01-01", amount: "3.99", },
// ... more
];
我需要以链接的方式显示它们,类似于以下SQL的产物:
SELECT
charges.date,
charges.amount,
users.name,
user_types.name
FROM
charges
LEFT OUTER JOIN users ON users.id = charges.user_id
LEFT OUTER JOIN user_types ON user_types.id = users.user_type_id
我知道我可以在服务器上使用此 SQL 查询创建 API 调用,但我想避免这种情况,因为表已经加载到 Web 应用程序中。
将它们加入记忆的最简单方法是什么?
【问题讨论】:
-
你愿意使用库还是纯JS?这些数组中有多少数据?它们很大吗?
-
你已经回答了你自己的问题:用 SQL 来做。然后更新您应用中的数据以匹配。
-
另外,如何生成/填充数组?如果您可以修改它们的填充方式,您可以在需要加入它们时使事情变得更容易。
-
IMTheNachoMan:小型JS库还可以。 “Charges”数组通常是几百条记录,但应该能够处理几千条。 “用户”只有几百个。
标签: javascript sql arrays