Javascript 按键获取组总结果
Javascript fetch group total results by key
我正在执行 javascript 提取,其中我从 GET 响应返回 json,我需要按每个类别的总出现次数进行分组(我的键).
这是我的 json:
的示例
[{Id, Var1, Var2, CreationDate},
{1, 123, abc123, 2020-12-11},
{2, 1234, abc123, 2020-12-12},
{3, 12345, abc123, 2020-12-12},
{4, 1234, abc123, 2020-12-13},
{5, 321, cda123, 2020-12-15},
{6, 3214, cda123, 2020-12-15},
{7, 5432, fff123, 2020-12-16},
{8, 5432, fff123, 2020-12-16},
{9, 5432, fff123, 2020-12-16},
{10, 5432, fff123, 2020-12-16},
{11, 5432, ddd123, 2020-12-16},
{12, 5432, ddd123, 2020-12-16},
{13, 5432, ddd123, 2020-12-16},]
我想按键对返回结果进行分组,其中键是“Var2”,它是我在数组中的值的一部分。要匹配它,只需要包含 listOfVariables 数组中的值之一。
这是我的代码:
var myObj;
var result;
var listOfVariables = [abc, cda, fff, ddd];
fetch('https://blashblashblash.com?listOfVariables')
.then(res=>res.json())
.then(data=>myObj= data)
.then(() =>
myObj.forEach(function (elem){
var variable = elem.Var2.includes(listOfVariables);
if (result[variable ]) {
result[variable ] += 1;
} else {
result[variable ] = 1;
}
});
listOfVariables.forEach(variable => {
if(!result.hasOwnProperty(variable )) {
finalResult[variable ] = 0;
} else {
finalResult[variable ] = result[variable ];
}
});
我得到的最终结果是:
[abc: 0
cda: 0,
fff: 0,
ddd, 0]
但应该是:
[abc: 4,
cda: 2,
fff: 4,
ddd: 3]
我哪里错了?显然我的代码无法理解变量是否包含数组 lisrOfVariables 的元素之一作为子字符串。
谢谢
const result = [];
const finalResult = [];
const listOfVariables = ['abc', 'cda', 'fff', 'ddd'];
fetch('https://blashblashblash.com?listOfVariables')
.then(res => res.json())
.then((data) => data.forEach((elem) => {
const variable = elem.Var2;
const variableInList = listOfVariables.includes(variable);
if (variableInList) {
result[variable] = (result[variable] || 0) + 1;
}
}));
listOfVariables.forEach(variable => {
finalResult[variable] = result.hasOwnProperty(variable) ? result[variable] : 0;
});
我正在执行 javascript 提取,其中我从 GET 响应返回 json,我需要按每个类别的总出现次数进行分组(我的键). 这是我的 json:
的示例[{Id, Var1, Var2, CreationDate},
{1, 123, abc123, 2020-12-11},
{2, 1234, abc123, 2020-12-12},
{3, 12345, abc123, 2020-12-12},
{4, 1234, abc123, 2020-12-13},
{5, 321, cda123, 2020-12-15},
{6, 3214, cda123, 2020-12-15},
{7, 5432, fff123, 2020-12-16},
{8, 5432, fff123, 2020-12-16},
{9, 5432, fff123, 2020-12-16},
{10, 5432, fff123, 2020-12-16},
{11, 5432, ddd123, 2020-12-16},
{12, 5432, ddd123, 2020-12-16},
{13, 5432, ddd123, 2020-12-16},]
我想按键对返回结果进行分组,其中键是“Var2”,它是我在数组中的值的一部分。要匹配它,只需要包含 listOfVariables 数组中的值之一。 这是我的代码:
var myObj;
var result;
var listOfVariables = [abc, cda, fff, ddd];
fetch('https://blashblashblash.com?listOfVariables')
.then(res=>res.json())
.then(data=>myObj= data)
.then(() =>
myObj.forEach(function (elem){
var variable = elem.Var2.includes(listOfVariables);
if (result[variable ]) {
result[variable ] += 1;
} else {
result[variable ] = 1;
}
});
listOfVariables.forEach(variable => {
if(!result.hasOwnProperty(variable )) {
finalResult[variable ] = 0;
} else {
finalResult[variable ] = result[variable ];
}
});
我得到的最终结果是:
[abc: 0
cda: 0,
fff: 0,
ddd, 0]
但应该是:
[abc: 4,
cda: 2,
fff: 4,
ddd: 3]
我哪里错了?显然我的代码无法理解变量是否包含数组 lisrOfVariables 的元素之一作为子字符串。 谢谢
const result = [];
const finalResult = [];
const listOfVariables = ['abc', 'cda', 'fff', 'ddd'];
fetch('https://blashblashblash.com?listOfVariables')
.then(res => res.json())
.then((data) => data.forEach((elem) => {
const variable = elem.Var2;
const variableInList = listOfVariables.includes(variable);
if (variableInList) {
result[variable] = (result[variable] || 0) + 1;
}
}));
listOfVariables.forEach(variable => {
finalResult[variable] = result.hasOwnProperty(variable) ? result[variable] : 0;
});