【发布时间】:2021-06-28 15:27:08
【问题描述】:
我正在尝试使用 ALASQL 计算 javascript 对象中某些属性(在我的情况下为 TypeAlarme)的出现次数。 这是我尝试过的
let data = [{DepName: "Dept Test Code Blanc2",TypeAlarme: "BtnEtat 1"},
{DepName: "Dept Test Code Blanc2",TypeAlarme: "BtnEtat 3"},
{DepName: "Dept Test Code Blanc2",TypeAlarme: "BtnEtat 2"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 1"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 3"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 3"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 1"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 2"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 1"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 2"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 3"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 3"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 1"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 2"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 1"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 2"},
{DepName: "DeptTagWiFi",TypeAlarme: "BtnEtat 3"}];
let deptList = alasql('SELECT COLUMN DISTINCT DepName FROM ?',[data]);//List of departments
let etats = alasql('SELECT COLUMN DISTINCT TypeAlarme FROM ?', [data]);//List of etats
let counts = [];
deptList.forEach((i, dept) =>
{
let countsByDept = [];
etats.forEach((j, etat) =>
{
let count = alasql('SELECT COLUMN COUNT(TypeAlarme) FROM ? WHERE DepName = ? AND TypeAlarme = ?',
[data, dept, etat]);
countsByDept.push(count[0]);
});
counts.push(countsByDept);
});
console.log(counts); // returns [[0, 0, 0], [0, 0, 0]] should be [[1, 1, 1], [5, 4, 5]]
我的目标是计算每个部门有多少个 etats。对于部门“DeptTagWiFi”,我们有 5 次出现“BtnEtat 1”; “BtnEtat 2”出现 4 次,“BtnEtat 3”出现 5 次。对于部门“Dept Test Code Blanc2”,我们有 1 个“BtnEtat 1”、“BtnEtat 2”和“Btn Etat 3”。
【问题讨论】:
-
我想说的是,在解析 JSON 之前,您无法对 JSON 做任何有用的事情……然后我意识到您的代码中没有 JSON……无论如何……您当前的代码呢?这与你想要它做的有什么不同?此外,鉴于数据,哪个数据是部门“A”以及为什么它有 5 个“BtnEtats” - 你的要求能否更清楚
-
我添加了更多细节。
标签: javascript json alasql