【发布时间】:2019-05-04 21:44:12
【问题描述】:
我显然不知道如何在标题中解释自己..
我有一个包含调查信息的数组,该数组向我提供了人们说他们使用更多的应用程序以及他们如何评估它们。
从列表中您可以选择以下应用:
- 字
- Excel
- 电源点
- 访问
- 功率比
您必须从以下方面对每个应用进行评分:
- 可用性
- 性能
- 移动功能
- 数据移动
这些功能可以被评估为“1-Poor”、“2-Average”、“3-Good”或“4-N/A”。
此外,每个人都按他们所在的大陆划分:美洲、亚洲、欧洲、非洲、大洋洲。
我的问题:
我需要按他们的大陆将人们分开。
以及他们如何评估每个应用程序:
来自美国的人,他们在“可用性”中评价为“差”Word。
来自美国的人,他们在“表现”中评价为“差”Word。
来自美国的人,他们在“移动能力”中评价为“差”Word。
来自美国的人,他们在“数据移动”中评价为“差”Word。
我需要为每个评估执行此精确循环:差、平均、好和 N/A。
还适用于每个应用程序:Word、Excel、Power Point、Access、Power Bi。
还按大陆:美洲、亚洲、欧洲、非洲、大洋洲。
这就是我的数组的样子(只是一个人的例子):
var results = [
{
"Author": "Person 1",
"Word Usability": "3",
"Word Performance": "2",
"Word Mobile capability": "1",
"Word Data movement": "4",
"Excel Usability": "3",
"Excel Performance": "2",
"Excel Mobile capability": "1",
"Excel Data movement": "4",
"PowerPoint Usability": "3",
"PowerPoint Performance": "2",
"PowerPoint Mobile capability": "1",
"PowerPoint Data movement": "4",
"Access Usability": "3",
"Access Performance": "2",
"Access Mobile capability": "1",
"Access Data movement": "4",
"PowerBi Usability": "3",
"PowerBi Performance": "2",
"PowerBi Mobile capability": "1",
"PowerBi Data movement": "4",
"Continent": "America"
},
...
]
我所做的是创建各种数组,然后将它们循环以按区域分隔人员,以及他们如何通过之前标记的各个方面评估每个应用程序:
<script>
//I created arrays for each continent
var america = [],
europe = [],
asia = [],
africa = [],
oceania = [];
//And also separate the count of each "evaluation" from each aspect to rate the app
var americaWord_Usability1 = 0,
americaWord_Usability2 = 0,
americaWord_Usability3 = 0,
americaWord_Usability4 = 0;
var americaWord_Performance1 = 0,
americaWord_Performance2 = 0,
americaWord_Performance3 = 0,
americaWord_Performance4 = 0;
...
//I make the loop
for(var i=0;i<results.length;i++) {
var currentItem = results[i];
//depending their continent, I send each people to their correspondent array
if(currentItem.Continent == "America") {
america.push(currentItem);
}
...
}
//now I loop by region and send them depending their app and how they were evaluated in each aspect
for(var q=0;q<america.length;q++){
var currentItem = america[q];
if(currentItem["Word Usability"] == "1") {
americaWord_Usability1++;
} else if(currentItem["Word Usability"] == "2") {
americaWord_Usability2++;
} else if(currentItem["Word Usability"] == "3") {
americaWord_Usability3++;
} else {
americaWord_Usability4++;
}
if(currentItem["Word Performance"] == "1") {
americaWord_Performance1++;
} else if(currentItem["Word Performance"] == "2") {
americaWord_Performance2++;
} else if(currentItem["Word Performance"] == "3") {
americaWord_Performance3++;
} else {
americaWord_Performance4++;
}
...
}
</script>
使用这种方法,这一切都变成了一场噩梦。这是很多代码,因为我需要为每个大陆制作一个数组,并为每个方面制作一个数组来评价每个应用程序!
我的实际代码有点长,要评价的方面和应用程序更多。所以我的代码变得非常长。
我的问题是:有没有更好更简单的方法来实现这一点?
提前致谢!
【问题讨论】:
标签: javascript arrays